[英]Creating a SQL Azure user that cannot create tables
我只需要在SQL Azure數據庫上創建一個新用戶,該用戶就可以從每個表中進行SELECT / INSERT / UPDATE / DELETE,並執行每個proc,但是不能創建/更改/刪除任何內容。
換句話說,我需要一個不能對數據庫運行DDL命令的新用戶。
我已經設法創建登錄名和用戶(在主模式下)。 有什么幫助嗎?
-編輯1在SQL Azure上創建新用戶后,它就已經可以創建表和proc(因此,這是撤銷此功能的基礎)。 這里介紹了從Master數據庫發出的命令:
CREATE LOGIN Sistema WITH PASSWORD = 'XXX';
CREATE USER Sistema
FOR LOGIN Sistema
WITH DEFAULT_SCHEMA = dbo; --This command was run on Master database, AND on my MainDatabase.
-解決方案(基於Jisaak的回答):
--After creating login and user, I issued those commands from MainDatabase:
EXEC sp_addrolemember db_datareader, Sistema
EXEC sp_addrolemember db_datawriter, Sistema
EXEC sp_droprolemember db_owner, Sistema --As it appears, SQL Azure defaults new users as "db_owners", which must be revoked
只需為用戶分配“ db_datareader
”和“ db_datawriter
”數據庫角色成員身份即可。 您可以使用sp_addrolemember存儲過程來在Azure上正常運行:
EXEC sp_addrolemember 'db_datareader', 'USERNAME'
EXEC sp_addrolemember 'db_datawriter', 'USERNAME'
編輯:
您可以從gplwhite使用此sql檢查rolememberships :
select m.name as Member, r.name as Role
from sys.database_role_members
inner join sys.database_principals m on sys.database_role_members.member_principal_id = m.principal_id
inner join sys.database_principals r on sys.database_role_members.role_principal_id = r.principal_id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.