1第一种情况,在还原数据库之后,sqlserver数据库对应的用户权限也还原了,于是想在安全性那里删除掉用户重新建一个用户授予权限,结果总是提示用户已存在了,然后修改用户权限就发觉无法修改权限,怀疑是用户和数据库之间的关联没有删除掉,于是用一下脚本把数据库用户彻底删除再重新建立分配权限:
ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo
go
EXEC sys.sp_revokedbaccess @name_in_db = user -- sysname
DROP USER user
DROP LOGIN user
上面sql语句中user是登录名,只需要在想删除对应用户相关联的数据库中新建查询,然后copy这个脚本,执行一下就可以彻底删除了
2第二种情况,在还原sqlserver数据库后,我新建用户名,配置权限之后,在点击确认后发现提示数据库用户已经存在,这时,在想删除原先的数据库用户时提示了另外一个信息,“SQLServer无法删除登录名'***',因为该用户当前正处于登录状态“,问题描述很清楚了,就是这个用户占用着数据库,那么可以先找出哪个用户占着数据库,然后Kill掉这个进程,再删除用户就可以了:
exec sp_who 'admin'
我这里想要删除的用户是admin,具体的根据你想删除的用户名来改,然后就会看到下图
这里发现是spid为86的进程占用着,所以我们用一下命令杀掉进程:
kill 86
然后再删除这个用户,就可以了