2015-04-01 48 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上。