SQL Server 账号管理主要包含登录名、用户、架构、角色等管理。通过对账号的管理可以有效的提高数据库系统的安全性,规范运维及使用。注意:登录名是实例下的安全对象,用户、架构及角色是数据库下的安全对象
安全认证的三个过程
用户访问数据库数据一般要经过三个安全认证过程:
- 登录权限认证,访问实例 — 登录名
- 访问特定数据库的权限,访问数据库 — 用户名
- 在数据库特定对象上执行特定行为 — 权限
登录名管理
使用 SSMS 创建 SQL Server 登录名:
-
在对象资源管理器中,展开要在其中创建新登录名的服务器实例的文件夹。
-
右键单击"安全性"文件夹,指向"新建",然后选择"登录名…"。
用户名管理
使用 SSMS 创建用户:
- 在对象资源管理器中 ,展开“数据库” 文件夹。
- 展开要在其中创建新数据库用户的数据库。
- 右键单击“安全”文件夹,指向“新建”,然后选择“用户…”。
- 在 “数据库用户 - 新建 ”对话框中的 “常规 ”页上,从 “用户类型”列表中选择以下用户类型 之一:具有登录名的 SQL 用户
权限及权限控制
主体
“主体”是可以请求 SQL Server 资源的实体。
SQL Server 级的主体
- SQL Server 身份验证登录名
- Windows 用户的 Windows 身份验证登录名
- Windows 组的 Windows 身份验证登录名
- Microsoft Entra 用户的 Microsoft Entra 身份验证登录
- Microsoft Entra 组的 Microsoft Entra 身份验证登录
- 服务器角色
数据库级的主体
- 数据库用户
- 数据库角色
- 应用程序角色
安全对象
安全对象是 SQL Server 数据库引擎授权系统控制对其进行访问的资源
安全对象范围:服务器
- 可用性组
- 终结点
- 登录名
- 服务器角色
- 数据库
安全对象范围:数据库
- 应用程序角色
- 程序集
- 非对称密钥
- 证书
- 合约
- 全文目录
- 全文非索引字表
- 消息类型
- 远程服务绑定
- (数据库)角色
- 路由
- 架构
- 搜索属性列表
- 服务
- 对称密钥
- 用户
安全对象范围:架构
- 类型
- XML 架构集合
- 对象 - 对象类包含以下成员:
- 聚合
- 函数
- 过程
- 队列
- 同义词
- 表
- 查看
- 外部表
权限介绍
'主体’在‘安全对象上’可以执行什么操作或不可以执行什么操作。
控制对安全对象的访问
可以通过 GRANT、REVOKE 和 DENY 语句将服务器级别权限应用于登录名或服务器角色,将数据库级别权限应用于用户或数据库角色