對於我正在使用Azure SQL的項目,在Web應用程序中的使用我創建了一個用戶'justread',該用戶被授予select - 訪問數據庫中的某個模式。Azure SQL Server - 如何授予用戶只讀訪問主數據庫的權限
我這樣做的傳統方式,在2個步驟:
在主數據庫
if exists(select * from sys.database_principals where name = N'justread') begin drop user [justread] drop login [justread] end go if not exists (select * from sys.database_principals where name = N'justread') begin create login [justread] with password= N'123456' end go
在應用程序數據庫
create user [justread] for login [justread] with default_schema=[dbo] go grant select on schema::dbo to [justread] go
在應用程序數據庫但是,我收到了一個允許同一用戶只讀訪問主數據庫的請求。
不要問我爲什麼...
我第一個通過賦予訪問相同的是和我一樣的應用程序數據庫上試了一下:
create user [justread] for login [justread] with default_schema=[dbo]
go
grant select on schema::dbo to [justread]
go
第一個查詢工作,沒有問題。但是第二次失敗,出現以下錯誤:
Msg 15151, Level 16, State 1, Line 5
Cannot find the schema 'dbo', because it does not exist or you do not have permission.
我試着用搜索引擎,發現它是如何與一個經典的SQL服務器完成的,但我也到了那裏的錯誤消息:
grant view server state to [justread]
go
Msg 40520, Level 16, State 1, Line 4
Securable class 'server' not supported in this version of SQL Server.
我如何完成這件事?
這似乎是伎倆。謝謝。 :-) – Fysicus