2015-02-02 5 views
0

몇 가지 다른 데이터베이스에서 단일 테이블에 액세스 할 수있는 로그인을 만들려고했습니다.한 테이블에 대한 사용 권한을 가진 사용자를 만들었지 만 테이블이 포함 된 데이터베이스에 액세스 할 수 없습니다.

내가 만든 로그인 나는 다음과 같은 오류 얻을 사용하여 시도하고 테이블을 쿼리 :

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 

사람을합니까 :

The server principal "log_Reader" is not able to access the database "MyDB" under the current security context.

여기에 내가 로그인/사용자를 만드는 데 사용되는 SQL이의를 내가 놓친 아이디어가 있으십니까?

덕분에, 제이슨

+0

ALTER ROLE [db_datareader] ADD MEMBER [log_Reader]가 도움이됩니까? – Elliveny

+0

2008 R2, 그래서 당신이 제안한 역할에 sp_addrolemember 시도 - 불행히도, 아니 기쁨. –

답변

0

나는이 작업을 가지고있다.

사용자 생성시 문제가 초기 기본 스키마 인 것으로 보입니다.

로그인 및 사용자를 삭제하고 기본 스키마로 다시 작성하면 효과가있었습니다.