繁体   English   中英

如何在 SQL Server 中一次性授予对多个架构的访问权限

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM