从内存中工作(我的游戏'pooter 上没有 SQL),您可以使用sys.database_permissions
运行此命令并将结果粘贴到新查询中。
编辑,2012 年 1 月。添加了 OBJECT_SCHEMA_NAME。
您可能需要通过加入 sys.objects 来支持模式 (dbo.)
SET NOCOUNT ON;
DECLARE @NewRole varchar(100), @SourceRole varchar(100);
-- Change as needed
SELECT @SourceRole = 'Giver', @NewRole = 'Taker';
SELECT
state_desc + ' ' +
permission_name + ' ON ' +
OBJECT_SCHEMA_NAME(major_id) + '.' + OBJECT_NAME(major_id) +
' TO ' + @NewRole
FROM
sys.database_permissions
WHERE
grantee_principal_id = DATABASE_PRINCIPAL_ID(@SourceRole)
AND
-- 0 = DB, 1 = object/column, 3 = schema. 1 is normally enough
class <= 3;