SQL Server 权限管理

SQL Server
20
0
0
2024-12-11

目录

1. 权限管理

什么是权限管理?

SQL server的安全机制

服务器级角色

数据库级角色

对象级角色

2. 创建用户 赋予权限

最重要的一步骤

1. 权限管理

什么是权限管理?

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

SQL server的安全机制
  1. 身份验证(Authentication):
  • Windows身份验证: 使用Windows操作系统的用户身份验证信息。
  • SQL Server身份验证: 使用SQL Server本地账户和密码进行身份验证。
  1. 授权(Authorization):
  • 登录(Login): 登录是允许用户连接到SQL Server实例的标识。
  • 用户(User): 用户是数据库级别的安全主体,关联到登录并在数据库中分配权限。
  • 角色(Role): 角色是一组权限的逻辑集合,用户可以被分配到角色,以简化权限管理。
  • 权限(Permission): 权限规定了对数据库对象执行的特定操作,如SELECT、INSERT、UPDATE、DELETE等。
  1. 数据库级别的安全性(Database-level Security):
  • 数据库级别的角色(Database-level Roles): 例如,db_datareader和db_datawriter。
  • 数据库级别的权限(Database-level Permissions): 控制对整个数据库的操作权限。
  1. 对象级别的安全性(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 身份验证模式

重新启动服务器

点击确定继续

重新连接

连接成功

祝福大家在2024年里:

  1. 快乐幸福,笑逐颜开。
  2. 健康安康,身体倍棒。
  3. 事业有成,成就非凡。
  4. 爱情甜蜜,关系愈浓。
  5. 学业有成,智慧无穷。
  6. 家庭和睦,温馨幸福。
  7. 梦想成真,前程无限。
  8. 逆风前行,勇往直前。
  9. 心想事成,万事如意。
  10. 看尽美好,迎接新生。