此核对清单可帮助您检查您是如何限制对组织中数据的访问的。使用此核对清单可以定期审核用户是如何访问在 SQL Server 数据库引擎 中存储的信息的。
对 SQL Server 实例的访问
以下项与整个数据库引擎实例相关。
.gif) |
- 您是否通过 Windows 组对大多数登录名授予访问权限?
提示 通过使用 Windows 组配置对数据库引擎的访问可使访问更易于管理和维护。有关登录名的详细信息,请参阅主体(数据库引擎)。
|
.gif) |
- 您是否从数据库引擎删除了不必要或已废弃的登录名?
提示 这可能要求定期的手动检查。主要通过 Windows 组实现访问可以简化此任务。
|
.gif) |
- 您是否实施了最小权限原则?
提示 只应针对主体必须访问才能完成其工作的那些数据库对象向主体(登录名、用户和角色)授予权限。不要允许日常用户使用管理员帐户(例如 sa)进行连接。不要允许您的网页、自定义应用程序或 SSIS 包使用管理员帐户进行连接。
|
.gif) |
- 为了在不授予附加权限的情况下查看系统元数据,您是否在对象、架构、数据库或服务器级别有选择地授予 VIEW DEFINITION 权限?
提示 有关详细信息,请参阅 GRANT (Transact-SQL)。
|
.gif) |
- 您是否用链接服务器替代远程服务器?
提示 有关详细信息,请参阅配置远程服务器和链接服务器。
|
.gif) |
- 如果需要针对链接服务器的传递身份验证,您是否约束了委托?
提示 有关详细信息,请参阅sp_addlinkedsrvlogin (Transact-SQL)。
|
.gif) |
- 您是否禁用了对服务器进行的即席查询(除非需要)?
提示 有关详细信息,请参阅即席分布式查询选项。
|
对象访问
以下项与访问数据库对象相关。
.gif) |
- 是否向 public 服务器和数据库角色授予了很少几个(如果有)权限?
提示 所有登录名和用户都是 public 角色的成员,不能被删除。这些角色应该具有非常有限的权限。
|
.gif) |
- 是否将相似的数据库对象组合到同一个架构中?
提示 基于业务要求创建架构。请使用这些自定义架构来代替 dbo 架构。有关详细信息,请参阅架构(数据库引擎)。
|
.gif) |
- 您是否通过在架构级别设置所有权和权限来管理数据库对象安全性?
提示 有关详细信息,请参阅 GRANT 架构权限 (Transact-SQL)。
|
.gif) |
- 您对于架构是否具有不同的所有者,而不具有 dbo 所拥有的所有架构?
提示 在所有架构都具有相同的所有者时,所有权链接可能会忽略必要的权限检查。有关详细信息,请参阅所有权链。
|
.gif) |
- 如果某个过程需要附加的权限,您是否使用过程代码的代码签名?
提示 有关详细信息,请参阅模块签名(数据库引擎)。
|
.gif) |
- TRUSTWORTHY 数据库选项是否设置为 OFF?
提示 当设置为 ON 时,使用了模拟上下文的数据库模块(例如,用户定义函数或存储过程)可以访问数据库以外的资源。使用 ALTER DATABASE 语句可以更改 TRUSTWORTHY 设置。有关详细信息,请参阅 TRUSTWORTHY 数据库属性。
|
.gif) |
- 模块是否采取措施来避免 SQL 注入?
提示: 有关详细信息,请参阅 SQL 注入。
|
.gif) |
- 如果允许对数据库的即席访问(而非将访问封装在模块内),应用程序是否采取措施来避免 SQL 注入?
提示 有关更多信息,请参见下列链接。
|