Kgn*_*web 4 sql database 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
Run Code Online (Sandbox Code Playgroud)
这运行良好并创建用户/登录。他可以访问 dbo 架构。
但我需要在SCHEMA选项中指定多个模式。
所以我尝试了:
GRANT SELECT, INSERT, UPDATE, DELETE ON SCHEMA :: [dbo,app] to SqlUser
Run Code Online (Sandbox Code Playgroud)
但我收到一个错误:
找不到架构“dbo;app”,因为它不存在或您没有权限。
如何在上述 SQL 模式中指定多个架构来授予用户访问权限?
谢谢!
您必须运行多个语句:
GRANT SELECT, INSERT, UPDATE, DELETE ON SCHEMA::dbo TO SqlUser
GRANT SELECT, INSERT, UPDATE, DELETE ON SCHEMA::app TO SqlUser
Run Code Online (Sandbox Code Playgroud)
如果这是您经常执行的操作,或者多个用户需要这些权限,那么您最好创建一个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;
Run Code Online (Sandbox Code Playgroud)