SQL Server 数据库引擎和 Azure SQL 数据库的安全

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)

本页提供的链接可帮助你找到有关 SQL Server 数据库引擎和 Azure SQL 数据库中的安全性和保护的必要信息。

图例

说明功能可用性图标的图例的屏幕截图。

身份验证:你是谁?

功能 链接。
谁进行身份验证?

Windows 身份验证
SQL Server 身份验证
Microsoft Entra ID(旧称 Azure Active Directory
谁进行身份验证? (Windows 或 SQL Server)
选择身份验证模式
使用 Microsoft Entra 身份验证连接到 Azure SQL
在哪里进行身份验证?

master 数据库中:登录和数据库用户
在用户数据库:包含的 DB 用户
master 数据库中进行身份验证 (登录名和数据库用户)
创建登录名
在 Azure SQL 数据库中管理数据库和登录名
创建数据库用户
在用户数据库进行身份验证
使用包含的数据库使数据库可移植
使用其他标识

凭据
以其他登录名执行
以其他数据库用户身份执行
凭据(数据库引擎)
EXECUTE AS
EXECUTE AS

授权:可执行什么操作?

功能 链接。
授予、撤消和拒绝权限

安全对象类
精细服务器权限
精细数据库权限
权限层次结构(数据库引擎)
权限(数据库引擎)
安全对象
数据库引擎权限入门
不同角色的安全性

服务器级别的角色
数据库级别的角色
服务器级别角色
数据库级角色
限制对所选数据元素的数据访问

使用视图/过程限制数据访问
行级别安全性
动态数据掩码
签名的对象
使用视图存储过程(数据库引擎)限制数据访问
行级安全
行级安全
动态数据屏蔽
动态数据掩码(Azure SQL 数据库)
添加签名

加密:存储机密数据

功能 链接。
加密文件

BitLocker 加密(驱动器级别)
NTFS 加密(文件夹级别)
透明数据加密(文件级别)
备份加密(文件级别)
BitLocker(驱动器级别)
NTFS 加密(文件夹级别)
透明数据加密 (TDE)
备份加密
加密源

可扩展密钥管理模块
密钥存储在 Azure Key Vault 中
始终加密
可扩展的密钥管理 (EKM)
使用 Azure Key Vault 的可扩展密钥管理 (SQL Server)
Always Encrypted
列、数据和密钥加密

使用证书进行加密
使用对称密钥进行加密
使用非对称密钥进行加密
使用密码进行加密
ENCRYPTBYCERT
ENCRYPTBYASYMKEY
ENCRYPTBYKEY
ENCRYPTBYPASSPHRASE
加密数据列

连接安全:限制和保护

功能 链接。
防火墙保护

Windows 防火墙设置
Azure 服务防火墙设置
数据库防火墙设置
为数据库引擎访问配置 Windows 防火墙
sp_set_database_firewall_rule(Azure SQL 数据库)
sp_set_firewall_rule(Azure SQL 数据库)
加密传输中的数据

强制 TLS/SSL 连接
可选的 SSL 连接
配置 SQL Server 数据库引擎以加密连接
配置 SQL Server 数据库引擎以加密连接网络安全
Microsoft SQL Server 的 TLS 1.2 支持

审核:记录访问

功能 链接。
自动审核

SQL Server 审核(服务器和 DB 级别)
SQL 数据库审核(数据库级别)
检测威胁

SQL Server 审核(数据库引擎)
SQL 数据库审核
SQL 数据库高级威胁防护入门
SQL 数据库漏洞评估
自定义音频

触发器
自定义审核实现:创建 DDL 触发器DML 触发器
合规性

合规性
SQL Server:
通用标准
SQL 数据库:
Microsoft Azure 信任中心:各项功能的合规性

SQL 注入

SQL 注入是一种攻击方式,可将恶意代码插入字符串中,稍后这些字符串会传递到数据库引擎进行分析和执行。 构成 SQL 语句的任何过程都应进行注入漏洞审阅,因为 SQL Server 将执行其接收到的所有语法有效的查询。 所有的数据库系统都会面临一些受到 SQL 注入攻击的风险,并会受到正在查询数据库引擎的应用程序中引入的许多安全漏洞的威胁。 使用存储过程和参数化命令,避免使用动态 SQL,并限制所有用户的权限,可以防止受到 SQL 注入攻击。 有关详细信息,请参阅 SQL 注入

面向应用程序程序员提供的其他链接:

获取帮助