2012-10-03 73 views
0

专家sql服务器更改权限

我正在尝试为我们的IT团队设置权限。我们所有的IT员工都是I.T集团的成员。对于有问题的数据库,IT员工组是db_reader,db_reader的成员,并且可以执行所有SP/Fun。一个特定的用户我想授予修改对象的权限。

CREATE USER [S\Al] FOR LOGIN [S\Al] WITH DEFAULT_SCHEMA=[dbo] 

加入他db_ddlAmin角色

EXEC sp_addrolemember N'db_ddladmin', N'S\Al' 

在我们的数据库中的所有对象属于DBO schema..so我已经给上dbo架构ALTER权限给用户

GRANT ALTER ON SCHEMA::[dbo] TO [S\Al] 

但是当这个用户试图修改一个sp或删除一个表时,他会得到

不能改变过程' XX',因为它不存在或者你没有权限。 不能删除表'XX',因为它不存在或您没有权限。

此用户可以创建一个新表,但如果他试图放弃新创建的表,他得到的权限错误..

该用户的所在组或者是的db_owner的成员,另外4组成员或db_ddladmin角色,

什么我做错了,我怎么能解决这个..

感谢

VT

+0

做他们的成员的任何组有任何明确的'DENY's? 'DENY'总是胜过'GRANT'。 –

回答

0

个成员的​​角色应该能够修改存储过程。

确保您在正确的数据库中添加用户的角色:

use YourDatabase; 
EXEC sp_addrolemember N'db_ddladmin', N'S\Al' 

没有一个明确的use,你很可能使他的master数据库的db_dlladmin角色的成员!