sql - 如何编写SQL Server数据库角色脚本?

标签 sql sql-server tsql sql-server-2008

我需要编写一个脚本将一个特定的数据库角色从一台 SQL 服务器复制到另一台。

是否有一种简单的方法来生成创建角色和所有角色权限的脚本?

最佳答案

您可以使用如下脚本获得所需的内容:

declare @RoleName varchar(50) = 'RoleName'

declare @Script varchar(max) = 'CREATE ROLE ' + @RoleName + char(13)
select @script = @script + 'GRANT ' + prm.permission_name + ' ON ' + OBJECT_NAME(major_id) + ' TO ' + rol.name + char(13) COLLATE Latin1_General_CI_AS 
from sys.database_permissions prm
    join sys.database_principals rol on
        prm.grantee_principal_id = rol.principal_id
where rol.name = @RoleName

print @script

关于sql - 如何编写SQL Server数据库角色脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6300740/

相关文章:

sql - 如何在SQL命令中将数字转换为nvarchar

mysql - 在 MySQL 中评估表达式

sql-server - 将根据数量复制记录的查询

sql-server - 以编程方式检测哪个 SQL Server 是主体,哪个是镜像?

sql - 如何根据另一个表中另一列的值更新列?

sql - 在 SQL Server 2008 中使用 PIVOT

sql - 使用 to_char 和日期在 postgres 中添加生成的列

java - JDBC 找不到合适的驱动程序

sql - SQL Server 2005 中的 "select * from table"与 "select colA, colB, etc. from table"有趣的行为

sql-server - 删除名称中带有破折号的表