创建了具有一个表权限的用户,但无法访问包含该表的数据库

时间:2015-02-02 14:07:24

标签: sql-server sql-server-2008-r2 database-permissions

我尝试创建一个可以访问几个不同数据库中的单个表的登录。

当我尝试查询表时,使用创建的登录我收到以下错误:

  

服务器主体" log_Reader"无法访问数据库   " MYDB"在当前的安全背景下。

这是我用来创建登录/用户的SQL:

USE MASTER
GO

CREATE LOGIN log_Reader
WITH PASSWORD = '<password>'
GO



USE DB1
GO
CREATE USER log_Reader FOR LOGIN log_Reader
GRANT SELECT ON dbo.logtable TO log_Reader

USE DB2
GO
CREATE USER log_Reader FOR LOGIN log_Reader
GRANT SELECT ON dbo.logtable TO log_Reader

USE DB3
GO
CREATE USER log_Reader FOR LOGIN log_Reader
GRANT SELECT ON dbo.logtable TO log_Reader

USE DB4
GO
CREATE USER log_Reader FOR LOGIN log_Reader
GRANT SELECT ON dbo.logtable TO log_Reader

有没有人有任何我错过的想法?

谢谢, 杰森

1 个答案:

答案 0 :(得分:0)

我有这个工作。

在创建用户时,问题似乎是初始默认架构。

我删除了Login和User并使用默认架构重新创建它并且它有效。