2015-04-01 47 views
0

什麼樣的影響有一個授權命令基本上我試圖將權限授予所有架構在一個數據庫中的用戶我也喜歡這樣時沒有指定架構

USE MyDatabase 
GO 

GRANT INSERT, SELECT, EXECUTE, DELETE TO MyUser -- note that no schema is specified 
GO 

之前創建的現在,效果是相當混亂。根據SSMS MyUserMyDatabase上具有以下有效權限:CONNECT,DELETE,EXECUTE,INSERT,SELECT。

但是,他似乎沒有任何Schema的權利。所以我的問題是,從上面GRANT有什麼影響,並有沒有辦法在數據庫中的每個schemagrant權限(有點像通配符)?

+0

您*沒有*指定任何模式,因此使用了用戶的默認模式。通常這是'dbo' – 2015-04-01 14:02:26

+0

感謝您的迴應。我剛剛發現,我似乎對模式有特權。但這不是顯示在mmsm ... – nozzleman 2015-04-01 14:19:18

+1

@PanagiotisKanavos:不,它不在默認模式。它在整個數據庫上。 – 2015-05-12 05:18:43

回答

2

你可以找出哪些權限,使用下面的查詢授予:

SELECT d.*, OBJECT_NAME(major_id) AS ObjectName, SCHEMA_NAME(major_id) AS SchemaName 
FROM sys.database_permissions d 
INNER JOIN sys.database_principals u ON d.grantee_principal_id=u.principal_id 
WHERE u.name='MyUser' 

在這種情況下,將權限授予整個數據庫,這是同樣的事情在每個模式給予那些permisions上。