Sql server 2008 为多个数据库创建登录

Sql server 2008 为多个数据库创建登录,sql-server-2008,tsql,Sql Server 2008,Tsql,我需要创建一个新用户,然后设置两个不同数据库中不同表的权限。这是我创建用户的脚本 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 EX

我需要创建一个新用户,然后设置两个不同数据库中不同表的权限。这是我创建用户的脚本

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的select访问权。我需要先为MyDb1和MyDb2创建这个用户吗?如果是这样,如何实现这一点?

创建登录名
在整个SQL Server的上下文中,而
创建用户
创建角色
在每个数据库的上下文中。您将需要在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