cra*_*ice 4 t-sql sql-server-2008
我需要创建一个新用户,然后将权限设置为两个不同数据库中的不同表.这是我创建用户的脚本
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
Run Code Online (Sandbox Code Playgroud)
现在我有两个数据库MyDb1和MyDb2.我需要为此用户授予对MyDb1.Table1和MyDb2.Table2的select访问权限.我是否需要先为MyDb1和MyDb2创建此用户?如果是这样,怎么能实现呢?
小智 6
CREATE LOGIN在整个的SQL Server的情况下,同时CREATE USER和CREATE 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1260 次 |
| 最近记录: |