簡體   English   中英

創建無法創建表的SQL Azure用戶

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM