【SQLSERVER】用户、组或角色在当前数据库中已存在

Tanglu Other 2021-07-23 1490 0

问题背景

SQL Server的权限分配和MySQL区别比较大,今天在安全性-登录名中对一个已经存在的数据库账号赋予某个库权限的时候,报出了错误"用户、组或角色 '' 在当前数据库中已存在"。根据查询资料得知可能是因为存在孤立用户,出现孤立用户一般是说明登录名所关联的用户可能不是相同的用户,此时不能通过新建登录名或者是对同名登录授予对应数据库的“用户”权限。为了能够使数据库账号顺利的赋权访问该数据库,可以采用Sqlserver内置的系统存储过程sp_change_users_login来解决此问题。

解决方法

登录到Sqlserver管理工具执行以下语句

Use [数据库名]
go
exec sp_change_users_login 'UPDATE_ONE','用户名','登录名'

#举个例子,将linuxe数据库中的tanglu用户与登录名tanglu相关联

Use linuxe
go
exec sp_change_users_login 'UPDATE_ONE','tanglu','tanglu'


评论