【发布时间】:2011-10-03 03:02:21
【问题描述】:
我的数据库中有 SQL Server 用户,由于某种原因,用户在连接时无法查看表
以下是我用来创建该用户的命令。我不想让用户 dbuser 成为架构的所有者。
create user dbuser for login dbuser'
--on the specific database, I am using these commands.
exec sp_addrolemember @rolename = 'db_datareader', @membername = 'dbuser'
exec sp_addrolemember @rolename = 'db_datawriter', @membername = 'dbuser'
grant select on schema :: [schema1] TO [dbuser]
grant insert on schema :: [schema1] TO [dbuser]
grant update on schema :: [schema1] TO [dbuser]
grant execute on schema :: [schema1] TO [dbuser]
grant select on schema :: [schema2] TO [dbuser]
grant insert on schema :: [schema2] TO [dbuser]
grant update on schema :: [schema2] TO [dbuser]
grant execute on schema :: [schema2] TO [dbuser]
即使我授予架构上的所有插入和更新访问权限.. 使用dbuser 登录的用户也无法查看任何架构中的任何表。当用户尝试连接到数据库时,他只会看到系统表选项卡。用户需要查看schema1,schema2, schema3下的所有表
谢谢
【问题讨论】:
-
如果您发布代码、XML 或数据示例,请在文本编辑器中突出显示这些行并单击编辑器上的“代码示例”按钮 (
{ })工具栏以很好地格式化和语法突出显示它! -
感谢您为我编辑它。我会在这里做。
标签: sql sql-server sql-server-2008 permissions