sql-server-2005 – 为SQL Server 2005中的数据库角色成员生成脚
发布时间:2020-12-12 16:45:35 所属栏目:MsSql教程 来源:网络整理
导读:我有一个数据库,其中有很多用户.这些用户属于DB中不同的内置角色(例如db_ddladmin). 我想生成一个脚本,创建具有相同角色分配的相同用户,以在不同的数据库中使用. SQL Management Studio似乎只生成用户定义角色的sp_addrolemember调用,而不是生成内置的角色.有
我有一个数据库,其中有很多用户.这些用户属于DB中不同的内置角色(例如db_ddladmin).
我想生成一个脚本,创建具有相同角色分配的相同用户,以在不同的数据库中使用. SQL Management Studio似乎只生成用户定义角色的sp_addrolemember调用,而不是生成内置的角色.有什么办法让脚本成为所有角色吗? 也许还有其他更好的工具,用于从现有数据库生成数据库脚本(最好但不一定是免费的)? 解决方法有关数据库用户的信息及其分配的角色在系统视图中可用sys. database_principals和sys.database_role_members.使用以下查询查看此数据: select * from sys.database_principals select * from sys.database_role_members 我假设您在数据库A中配置了数据库用户和角色,并希望将其复制到数据库B.要创建目标数据库中的用户: >在数据库A中运行以下查询 . SELECT 'CREATE USER [' + name + '] for login [' + name + ']' from sys.database_principals where Type = 'U' and name <> 'dbo' 要在B中配置与A中具有相同角色的新用户: >在数据库A中运行以下查询 . SELECT 'EXECUTE sp_addrolemember ''' + roles.name + ''',''' + users.name + '''' from sys.database_principals users inner join sys.database_role_members link on link.member_principal_id = users.principal_id inner join sys.database_principals roles on roles.principal_id = link.role_principal_id 总是查看这些脚本.可能有例外或特殊情况,您只是不想搞砸安全. 如果新数据库位于不同的SQL Server实例上,则必须首先创建SQL登录名.如果您有用户定义的角色,您将需要重新创建它们. (角色和分配给他们的权限是非常开放的,我不想要在需要这样做的情况下) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 找不到数据库驱动程序:org.postgresql.Driver
- sql – 为什么选择计数(*)比hive中的Select *慢
- MySQL Order by 语句用法与优化详解
- sql – 从结果查询中选择count(*)
- sqlserver 不规则字符串转换为时间格式需要的格式
- mac系统OS X10.10版本安装最新5.7.9mysql的方法
- sql-server – 使用SQL SMO修复孤立用户?
- sql-server – 有没有办法重置表变量的身份?
- 数据库 – 如何在Ubuntu中打开.accdb文件?
- sql-server – 可否使用SQL Server Express或Web或Workgrou