0

专家

我正在尝试为我们的 IT 团队设置权限。我们所有的 IT 人员都是 IT 组的成员。对于有问题的数据库,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 模式..所以我已经将 dbo 模式的更改权限授予用户

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

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

无法更改过程“XX”,因为它不存在或您没有权限。无法删除表“XX”,因为它不存在或您没有权限。

该用户可以创建一个新表,但如果他尝试删除新创建的表,则会出现权限错误。

此用户是其他 4 个组的成员,其中该组是 db_owner 或 db_ddladmin 角色的成员,

我做错了什么,我该如何解决这个..

谢谢

VT

4

1 回答 1

0

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

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

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

如果没有明确的use,您可能会让他成为master数据库db_dlladmin角色的成员!

于 2012-10-03T10:38:43.560 回答