2014-01-07 169 views
1

我需要創建一個新用戶,然後將權限設置爲兩個不同數據庫中的不同表。這是我創建用戶的腳本爲多個數據庫創建登錄

CREATE LOGIN [MyUser] WITH PASSWORD=N'something' , CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF 
GO 

CREATE USER [MyUser] FOR LOGIN [MyUser] WITH DEFAULT_SCHEMA=[dbo] 
GO 

CREATE ROLE MyRole AUTHORIZATION [dbo] 
GO 

EXEC sp_addrolemember N'MyRole', N'MyUser' 
GO 

現在我有兩個數據庫MyDb1和MyDb2。我需要將此用戶的選擇訪問權授予MyDb1.Table1和MyDb2.Table2。我是否需要先爲MyDb1和MyDb2創建此用戶?如果是的話,這個如何實現呢?

回答

3

CREATE LOGIN是在整個SQL Server的上下文中,而CREATE USERCREATE ROLE位於每個數據庫的上下文中。您需要在MyDb1和MyDb2中創建用戶和角色,並在每個角色中授予權限。試試這個

USE MASTER 
GO 

CREATE LOGIN [MyUser] WITH PASSWORD=N'something' , CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF 
GO 

USE MyDb1 
GO 

CREATE USER [MyUser] FOR LOGIN [MyUser] WITH DEFAULT_SCHEMA=[dbo] 
GO 

CREATE ROLE MyRole AUTHORIZATION [dbo] 
GO 

EXEC sp_addrolemember N'MyRole', N'MyUser' 
GO 

GRANT SELECT ON dbo.Table1 TO MyRole 
GO 

USE MyDb2 
GO 

CREATE USER [MyUser] FOR LOGIN [MyUser] WITH DEFAULT_SCHEMA=[dbo] 
GO 

CREATE ROLE MyRole AUTHORIZATION [dbo] 
GO 

EXEC sp_addrolemember N'MyRole', N'MyUser' 
GO 

GRANT SELECT ON dbo.Table2 TO MyRole 
GO 
相關問題