我尝试创建一个可以访问几个不同数据库中的单个表的登录。
当我尝试查询表时,使用创建的登录我收到以下错误:
服务器主体" 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
有没有人有任何我错过的想法?
谢谢, 杰森
答案 0 :(得分:0)
我有这个工作。
在创建用户时,问题似乎是初始默认架构。
我删除了Login和User并使用默认架构重新创建它并且它有效。