[英]SQL Server - How to Grant Read Access to ALL databases to a Login?
[英]How to grant access to multiple schemas in one go in SQL Server
当谈到 SQL Server 中的数据库管理领域时,我非常熟悉。
下面是我创建登录和用户并授予权限的 SQL 代码
USE TestDb
GO
CREATE LOGIN [TestLogin]
WITH PASSWORD = N'123', DEFAULT_DATABASE = [TestDb],
CHECK_EXPIRATION = OFF, CHECK_POLICY = OFF
GO
CREATE USER SqlUser FOR LOGIN [TestLogin]
GRANT SELECT, INSERT, UPDATE, DELETE ON SCHEMA :: dbo to SqlUser
这运行良好并创建用户/登录。 他可以访问 dbo 模式。
但我需要在SCHEMA
选项中指定多个模式。
所以我试过:
GRANT SELECT, INSERT, UPDATE, DELETE ON SCHEMA :: [dbo,app] to SqlUser
但我收到一个错误:
找不到架构“dbo;app”,因为它不存在或您没有权限。
如何在上述 SQL 模式中指定多个模式以授予用户访问权限?
谢谢!
您必须运行多个语句:
GRANT SELECT, INSERT, UPDATE, DELETE ON SCHEMA::dbo TO SqlUser
GRANT SELECT, INSERT, UPDATE, DELETE ON SCHEMA::app TO SqlUser
如果这是您经常执行的操作,或者多个用户需要这些权限,您最好创建一个ROLE
,然后将用户添加到该ROLE
。 这将使您能够在单个语句中完成它,而使用ALTER ROLE
。
CREATE ROLE SqlRole; --Give a better, more appropriate name
GRANT SELECT, INSERT, UPDATE, DELETE ON SCHEMA::dbo TO SqlRole;
GRANT SELECT, INSERT, UPDATE, DELETE ON SCHEMA::app TO SqlRole;
GO
ALTER ROLE SqlRole ADD MEMBER SqlUser;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.