【SQL Server】:数据库用户角色及权限

本文介绍了如何在 SQL Server 中管理各种登录和用户权限,包括添加域账号和 SQL Server 认证权限,授予服务器和数据库级别的角色,以及如何查询实例和数据库上的用户及角色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

添加域账号登录权限到实例下:

USE [master]
GO
CREATE LOGIN [Domain\Account] FROM WINDOWS WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english]
GO

 

添加SQL Server 认证权限到实例下:

USE [master]
GO
CREATE LOGIN [Account] WITH PASSWORD=N'Account', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO

 

授予数据库服务器级别角色:

USE [master]
GO
EXEC master..sp_addsrvrolemember @loginame = N'Account Name', @rolename = N'Server Role Name'
GO


授予数据库的访问权限:

Use [Name]
GO
CREATE USER [Account] FOR LOGIN [Account]
GO


为用户配置数据库访问角色:

Use [Name]
GO
EXEC sp_addrolemember N'Database Role Name', N'Account'
GO


授予查看存储过程的权限:

<pre class="sql" name="code">USE [Name]
GO
GRANT VIEW DEFINITION TO [Account]
GO


查询指定DB上所有用户和角色:

USE [Name]
GO

SELECT  member.name AS MemberName ,
        role.name AS RoleName
FROM    sys.database_role_members s
        LEFT JOIN sys.database_principals AS role ON s.role_principal_id = role.principal_id
        LEFT JOIN sys.database_principals AS member ON s.member_principal_id = member.principal_id
GO

 

查询实例下所有用户和角色:

USE [master]GO
SELECT  member.name AS MemberName ,
        role.name AS RoleName
FROM    sys.server_role_members
        JOIN sys.server_principals AS role ON sys.server_role_members.role_principal_id = role.principal_id
        JOIN sys.server_principals AS member ON sys.server_role_members.member_principal_id = member.principal_id
GO


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值