SQL Server 权限管理

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介: SQL Server 权限管理

1. 权限管理


什么是权限管理?

权限管理是数据库管理中的一个关键方面,它涉及到确定哪些用户或数据库主体(如登录、用户、角色等)有权执行特定的操作。权限管理的目的是确保数据库的安全性,防止未经授权的访问,保护敏感数据和维护数据库的完整性


SQL server的安全机制

身份验证(Authentication):


Windows身份验证: 使用Windows操作系统的用户身份验证信息。

SQL Server身份验证: 使用SQL Server本地账户和密码进行身份验证。

授权(Authorization):


登录(Login): 登录是允许用户连接到SQL Server实例的标识。

用户(User): 用户是数据库级别的安全主体,关联到登录并在数据库中分配权限。

角色(Role): 角色是一组权限的逻辑集合,用户可以被分配到角色,以简化权限管理。

权限(Permission): 权限规定了对数据库对象执行的特定操作,如SELECT、INSERT、UPDATE、DELETE等。

数据库级别的安全性(Database-level Security):


数据库级别的角色(Database-level Roles): 例如,db_datareader和db_datawriter。

数据库级别的权限(Database-level Permissions): 控制对整个数据库的操作权限。

对象级别的安全性(Object-level Security):


模式级别的权限(Schema-level Permissions): 控制对模式中对象的操作权限。

对象级别的权限(Object-level Permissions): 控制对具体对象(表、视图、存储过程等)的操作权限。


服务器级角色


在SQL Server中,有一些预定义的服务器级角色,这些角色具有不同的权限级别

服务器角色 描述
sysadmin 具有服务器上所有权限的最高权限角色。成员可以执行任何操作。
serveradmin 具有服务器级别配置选项和资源的管理权限。
securityadmin 管理登录、证书和密钥等安全性权限。
processadmin 管理正在运行的进程,但不能查看或更改这些进程的查询。

setupadmin 管理 SQL Server 安装过程的权限。
bulkadmin 执行 BULK INSERT 语句的权限。
diskadmin 管理磁盘文件的权限。
dbcreator 在服务器上创建、更改和删除数据库的权限。
public 默认服务器角色,所有登录用户都是其成员。


这些服务器级角色允许对服务器执行不同级别的管理任务。在分配角色成员身份时,应遵循最小权限原则,确保用户或登录仅获得其工作所需的最低权限级别


数据库级角色


角色 描述
db_owner 具有数据库上所有权限的最高权限角色。成员可以执行任何操作。
db_accessadmin 访问权限
db_securityadmin 管理数据库中的权限、角色和对象的权限。
db_ddladmin 管理数据库中的任何 DDL 操作。
db_datareader 允许成员 SELECT 数据库中的任何表或视图的权限。
db_datawriter 允许成员 INSERT、UPDATE 和 DELETE 数据库中的任何表的权限。
db_denydatareader 禁止读

db_denydatawriter 禁止写
public 默认数据库角色,所有数据库用户都是其成员。


这些数据库级别的角色允许对数据库执行不同级别的管理任务。db_owner 角色是最高权限的角色,允许执行任何数据库级别的操作。public 角色是默认的数据库角色,所有数据库用户都是其成员,但它通常没有分配具体的权限。


对象级角色

权限 描述
SELECT 允许用户检索数据库对象中的数据。
INSERT 允许用户向数据库对象中插入新的行。

UPDATE 允许用户更新数据库对象中的现有行的数据。
DELETE 允许用户从数据库对象中删除现有的行。
EXECUTE 允许用户执行存储过程或函数。

ALTER 允许用户更改对象的定义。
CREATE 允许用户创建新的数据库对象(如表、视图、存储过程等)。
VIEW DEFINITION 允许用户查看对象的定义,但不允许执行操作。
REFERENCES 允许用户在其他对象中引用表或视图。
TAKE OWNERSHIP 允许用户获取对象的所有权。
CONTROL 允许用户对指定的数据库对象拥有完全的控制权。


这些权限用于控制用户对数据库对象的不同操作。具体的权限需求可能会因对象类型和应用程序要求而有所不同。在分配权限时,建议按照最小权限原则,确保用户只获得其工作所需的最低权限级别。


2. 创建用户 赋予权限


右击登录名 点击新建登录名

选择SQL server身份验证

输入登录名密码 设置密码规则

默认数据库这一栏 选择你创建这个用户 允许登录哪一个数据库操作


选择服务器角色 不同的角色有着不同的权限(上边表中有介绍)

这边我赋予最高(服务器)权限


选择用户可以登录的数据库

下边框内就是(数据库)角色 不同的数据库角色 对(数据库)有着不同的权限

这边我选择访问和读 权限(对数据库)


第三列安全对象(根据需求勾选即可)

安全对象(Securable),可以通过权限得到保护的实体。 是SQLServer数据库引擎授权系统控制对其进行访问的资源。 如表、视图、触发器等。

状态 选择授予 启用

最重要的一步骤

选择第二个 SQL server 和 windows 身份验证模式



重新启动服务器

点击确定继续

重新连接

连接成功


相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
20天前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
2月前
|
SQL 安全 网络安全
"守护数据王国,揭秘SQL权限管理与安全配置秘籍!从创建用户到加密技术,全方位打造铜墙铁壁,让你的数据库安全无忧,远离黑客侵扰!"
【8月更文挑战第31天】数据库是信息系统的核心,存储了大量敏感数据,因此确保其安全至关重要。本文详细介绍了SQL权限管理与安全配置的方法,包括理解权限类型、创建用户和角色、分配权限、实施密码策略、使用加密技术、配置防火墙、定期审计备份及防止SQL注入等,帮助你全面保护数据库安全。通过这些步骤,你可以有效管理和配置数据库权限,防范潜在威胁,确保数据隐私和完整性。
65 0
|
3月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
75 13
|
3月前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
|
3月前
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
52 6
|
2月前
|
SQL 安全 Java
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
296 0
|
3月前
|
存储 SQL C++
对比 SQL Server中的VARCHAR(max) 与VARCHAR(n) 数据类型
【7月更文挑战7天】SQL Server 中的 VARCHAR(max) vs VARCHAR(n): - VARCHAR(n) 存储最多 n 个字符(1-8000),适合短文本。 - VARCHAR(max) 可存储约 21 亿个字符,适合大量文本。 - VARCHAR(n) 在处理小数据时性能更好,空间固定。 - VARCHAR(max) 对于大文本更合适,但可能影响性能。 - 选择取决于数据长度预期和业务需求。
204 1
|
3月前
|
SQL Oracle 关系型数据库
MySQL、SQL Server和Oracle数据库安装部署教程
数据库的安装部署教程因不同的数据库管理系统(DBMS)而异,以下将以MySQL、SQL Server和Oracle为例,分别概述其安装部署的基本步骤。请注意,由于软件版本和操作系统的不同,具体步骤可能会有所变化。
205 3
|
3月前
|
SQL 存储 安全
数据库数据恢复—SQL Server数据库出现逻辑错误的数据恢复案例
SQL Server数据库数据恢复环境: 某品牌服务器存储中有两组raid5磁盘阵列。操作系统层面跑着SQL Server数据库,SQL Server数据库存放在D盘分区中。 SQL Server数据库故障: 存放SQL Server数据库的D盘分区容量不足,管理员在E盘中生成了一个.ndf的文件并且将数据库路径指向E盘继续使用。数据库继续运行一段时间后出现故障并报错,连接失效,SqlServer数据库无法附加查询。管理员多次尝试恢复数据库数据但是没有成功。
|
3月前
|
SQL 监控 数据库
SQL Server 查询超时问题排查
【7月更文挑战第8天】排查 SQL Server 查询超时涉及五个主要方面:检查复杂查询、评估服务器性能、审视配置参数、更新统计信息和分析执行计划。关注点包括查询的结构(如连接、子查询和索引),服务器资源(CPU、内存、网络延迟),连接和内存设置,以及统计信息的时效性。通过这些步骤可定位并解决性能瓶颈。