2015-07-12 38 views
0

如果我有兩個數據庫「分貝」和「DBB」使用普通帳戶,我知道我可以運行查詢,如使用SQL Server 2012作爲無登錄用戶的數據庫連接?

SELECT * 
    FROM dbA.dbo.TableA a 
    JOIN dbB.dbo.TableB b ON a.columnA=b.columnB 

但我無法弄清楚如何將權限授予loginless帳戶

USE dbA; 
CREATE USER [test_user] WITHOUT LOGIN WITH DEFAULT_SCHEMA=[dbo] 
GRANT SELECT ON DATABASE::dbA TO [test_user]; 

當試圖對另一個數據庫上的無登錄用戶'test_user'提供選擇權限時,我收到一個錯誤。

GRANT SELECT ON DATABASE::dbB TO [test_user]; 

是否有可能使用無登錄用戶進行數據庫連接?如果是的話,授權聲明應該如何設置正確的權限?

+0

@ M.Ali我不認爲這很重要。我相信沒有登錄的用戶只能在數據庫級別存在。在另一個數據庫中創建相同的用戶是完全不同的帳戶,並且不會被映射。 – DavidG

回答

1

沒有登錄的用戶只能訪問啓用了訪客用戶的其他數據庫。如果您有跨數據庫要求,您可以考慮使用證書映射用戶。代碼見http://www.sommarskog.se/grantperm.html

0

用戶存在於數據庫級別。只有登錄存在於服務器級別。

我相信你可以像這樣創建分貝視圖:

use dbA; 

create view dbB_TableB as 
select * 
from dbB.dbo.TableB; 

然後你就可以分配SELECT權限爲分貝用戶視圖。

相關問題