tho*_*der 1 sql-server azure-sql-database azure
我已在 SSMS 的 Azure sql 数据库中创建了一个用户。现在尝试向该用户授予对数据库中某些表的选择权限。安全控制选项似乎与本地 SQL Server 有很大不同。如何在 Azure 数据库上执行这些操作?
我已经在本地 SQL Server 上尝试过了,效果很好。但在 azure sql 数据库上运行这些时出现错误。
USE [master]
GO
CREATE LOGIN [jnj_user] WITH PASSWORD=N'P2ssw0rd123', DEFAULT_DATABASE=[CRM], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
USE [CRM]
GO
CREATE USER [jnj_user] FOR LOGIN [jnj_user]
GO
Run Code Online (Sandbox Code Playgroud)
错误:
Msg 40517, Level 16, State 1, Line 3
Keyword or statement option 'default_database' is not supported in this version of SQL Server.
Msg 40508, Level 16, State 1, Line 5
USE statement is not supported to switch between databases. Use a new connection to connect to a different database.
Run Code Online (Sandbox Code Playgroud)
这也不适用于 Azure db:
GRANT SELECT ON [dbo].[JJVCEtrialOB] TO jnj_user
Run Code Online (Sandbox Code Playgroud)
错误:
Cannot find the user 'jnj_user', because it does not exist or you do not have permission.
Run Code Online (Sandbox Code Playgroud)
您需要确保在所有级别上添加登录
---- ON SERVER LEVEL
CREATE LOGIN TestUser
WITH PASSWORD = 'ThisIsAStrongPassword!'
GO
---- ON Master Level
CREATE USER TestUser
FOR LOGIN TestUser
WITH DEFAULT_SCHEMA = dbo
---- ON SQL DB LEVEL
CREATE USER TestUser
FOR LOGIN TestUser
WITH DEFAULT_SCHEMA = dbo
GO
GRANT SELECT ON OBJECT::dbo.Sales TO TestUser;
GO
Run Code Online (Sandbox Code Playgroud)
您需要login
在主上下文下添加服务器级别
然后将用户添加到上下文master
下的数据库master
然后将用户添加到sqldb
并授予其权限
编辑您不能使用 use 语句,因此您必须在 SSMS 中手动切换上下文
归档时间: |
|
查看次数: |
11269 次 |
最近记录: |