Sql 有没有一种简单的方法可以删除角色中的所有成员
我的数据库中有一个名为OrderEntry的用户定义角色,该角色只有两个成员。把他们一个接一个地丢掉这个角色并不是什么大不了的事。但是,如果出现需要放弃某个角色并且需要首先从该角色中删除所有成员的情况,我可以认为这是一个问题。有没有一个简单的方法可以做到这一点,以供将来参考。我在考虑SQL脚本Sql 有没有一种简单的方法可以删除角色中的所有成员,sql,sql-server,Sql,Sql Server,我的数据库中有一个名为OrderEntry的用户定义角色,该角色只有两个成员。把他们一个接一个地丢掉这个角色并不是什么大不了的事。但是,如果出现需要放弃某个角色并且需要首先从该角色中删除所有成员的情况,我可以认为这是一个问题。有没有一个简单的方法可以做到这一点,以供将来参考。我在考虑SQL脚本 select 'ALTER ROLE ' + QUOTENAME(rp.name) + ' DROP MEMBER ' + QUOTENAME(mp.name) from sys.database_r
select 'ALTER ROLE ' + QUOTENAME(rp.name) + ' DROP MEMBER ' + QUOTENAME(mp.name)
from sys.database_role_members drm
join sys.database_principals rp on (drm.role_principal_id = rp.principal_id)
join sys.database_principals mp on (drm.member_principal_id = mp.principal_id)
WHERE rp.name = 'OrderEntery '
order by rp.name
您可以像这样创建所有ALTER ROLE DROP成员语法。获取结果查询并运行它
结果应该是这样的
ALTER ROLE [OrderEntery ] DROP MEMBER [user1]
ALTER ROLE [OrderEntery ] DROP MEMBER [user2]
ALTER ROLE [OrderEntery ] DROP MEMBER [user3]
ALTER ROLE [OrderEntery ] DROP MEMBER [user4]
编辑:
从msdn:
- sys.database_role_members-为每个数据库的每个成员返回一行 数据库角色李>
- sys.database_principals-为每个安全主体返回一行 在SQL Server数据库中
alter角色。。。drop member…
语法,这样您就可以为所需角色的每个成员获得ALTER drop。当然……我只是不知道sys.database\u role\u members的内容来自何方……我是新手。它们是SQL Server表,SQL在其中存储数据。您可能希望SQL Server将其所有数据存储在表中,这些表用于成员和角色。@secretTina查看编辑。希望能有帮助。