当前位置:
文档之家› 2 SQLServer安全管理
2 SQLServer安全管理
Page 31/28
数据库角色
在没有设置权限的情况下,用户拥有public角色的任何权 限,能够进行一下任务: 执行不要求权限的语句,如print语句。 查看系统表的信息,并执行某些存储过程,以从它们有权 访问的master和用户数据库中检索信息。
使用guest账户获得任一用户的访问权。
Page 32/28
db_securityadmin
db_accessadmin db_backupoperator db_datareader db_datawriter db_ddladmin
能建立架构、更改角色
能添加或删除用户、组或角色 能备份数据库 能从数据库表中读数据 能修改数据库表中的数据 能添加、修改或删除数据库对象
WINDOWS CERTIFICATE
Option_list
PASSWORD=‘***’ CHECK_CHANGE CHECK_EXPIRATION={ON| OFF}
Page 13/28
创建登录账户 create login df with password='123',default_database=schtest --建立登录账号 create login zxx with password='123',default_database=schtest --建立登录账号
Page 35/28
添加数据库角色成员
向数据库定义的角色添加安全账户时考虑一下因素:
向角色添加安全账户时,任何应用于该角色的权限会 应用到新成员;
将一个SQL Server角色添加为另一个SQL Server角 色成员时,不能创建循环角色。故如果角色A已经是角 色B的成员时,不能将B角色添加为A角色的成员。
db_denydatareader
db_denydatawriter public
不能从数据库表中读数据
不修改数据库表中的数据 维护默认的权限
查看数据库角色
Page 30/28
数据库角色
Public角色:
维护数据库的默认用户权限
所有用户、角色或组默认的属于Public角色,因此不能将 它们分配给Public角色 包含在每一个数据库中,包括系统数据库和用户数据库 不能被删除
Page 39/28
管理权限
对数据库对象的安全管理,是通过权限来进 行的 权限用于控制对数据库对象的访问,以及指 定用户对数据库可以执行的操作。 访问数据库资源的唯一方法是被直接授予权 限或者间接的通过角色或组的成员授予权限。
Page 7/28
身份验证模式
SQL Server
Windows 身份验证
用户
windows 身份验证模式的优势:
(1)可以将一个Windows的用户或组被映射到SQL Serevr的登录账户。 (2)用户访问SQL Server更快,不用输入用户名和密码。 (3)提供更多功能。如安全确认和密码加密、审核、密码到期、最小密码 长度和输入无效密码后将账户锁定等。
Page 15/28
服务器角色-2
固定服务器角色
sysadmin dbcreator serveradmin securityadmin 执行任何活动 可以创建、更改数据库
描述
可以更改服务器范围的配置选项和关闭服务器 管理和审核登录帐户
processadmin
setupadmin diskadmin bulkadmin
Page 36/28
阶段总结 数据库用户
从登录中映射 特殊用户:Dbo和guest
数据库角色
固定数据库角色 用户定义数据库角色
Page 37/28
增加用户数据库角色
exec sp_addrolemember 'db_owner', 'zxx‘
存放数据库用户sysusers Select * from sysusers
Page 4/28
主体
主体是可以请求系统资源的个体、组合过 程。 Microsoft SQL Server 2008系统有多种不 同的主体,不同主体之间的关系是典型的 层次结构关系,位于不同层次上的主体其 在系统中影响的范围也不同。位于层次比 较高的主体,其作用范围比较大;位于层 次比较低的主体,其作用范围比较小。
Page 24/28
演示
映射数据库用户
数据库用户
修改用户属性 可以在对象资源管理器的中修改用户属性。 方法:选择数据库用户,单击鼠标右键,选择“属性”,修改用户的属 性。
删除用户
可以在对象资源管理器的中删除数据库用户。
方法是:选择要删除的数据库用户,单击鼠标右键,选择“删除”。
Page 25/28
数据库角色
用户定义数据库角色:一组具有相同权限的用户
在以下情况时将用户定义的数据库角色添加到数据库:
有一组人需要在SQL server中执行一组指定的活动, 并且不存在可使用的windows组;
没有管理windows用户账户的权限。
Page 33/28
数据库用户帐户和角色
Windows 组用户
Windows 2000
如:create user zxx for login zxx
数据库角色
数据库用户账户对该数据库所具有的权限由该账户所属的数 据库角色决定 SQL Server提供了两类数据库角色:固定数据库角色和用 户自定义数据库角色
Page 29/28
数据库角色
固定数据库角色
db_owner
描述
拥有数据库的所有许可
Page 5/28
主体 Windows 级 Windows 组 Windows 域登录名 Windows 本地登录名 SQL Server 级 SQL Server 登录名 固定服务器角色 请求 数据库级 数据库用户 固定数据库角色 应用程序角色
安全对象
有权限登录到这个 服务器的用户
服务器安全对象范围 端点 SQL Server 登录名 数据库
身份验证模式
Windows身份验证模式
SQL Server
Windows 身份验证
用户
注意:
如果SQL server发现“SQL server登录账户列表”中的windows 账户或组账户在syslogins表中存在,则接受该账户的连接。
SQL server识别不出在windows中被删除后再重新建立的用户 或组。用户必须将该账户从SQL server中删除,然后再进行添加。
数据库的安全机制
数据对象的安全机制
Page 3/28
登录到系统 当用户登录数据库管理系统时,如何确保 只有合法的用户才能登录? 身份验证和主体 SQL Server提供了身份验证模式,用以验 证客户端和服务器之间连接的方式。
Windows身份验证模式 SQL Server 和Windows 身份验证模式
演示
修改数据库用户
向数据库添加帐户
1、添加用户账户 2、默认数据库账户
Page 26/28
向数据库添加帐户
2、默认数据库账户
Guest用户账户:允许没有用户账户的用户登录并访问数据库。 可以对其配置权限、删除或将其添加到除master、tempdb以外 的任何数据库中。满足下面条件是采用guest身份登录:
可以终止 SQL Server 实例中运行的进程
配置复制和链接服务器 用于管理磁盘文件 可以运行 BULK INSERT 语句
回顾
syslogins
登录账户存放在那个表中? 身份验证模式有哪些?
Windows身份模式和混合模式
添加登录帐户到服务器角色
服务器 角色
演示
添加服 务器角 色成员
Page 18/28
Windows登录帐号 SQL Server登录帐号
服务器角色
系统内置 用户可以添加到服务器角色
Page 21/28
数据库用户
访问数据库需要在那个数据库上建立数据 库用户
从登录中映射 特殊用户
• Dbo • guest
SQL Server 用户
数据库
Page 22/28
管理数据库安全
Page 10/28
切换身份验证模式
演示
切换身份 验证模式
Page 11/28
SQL Server登录帐户
当需要使用登录账户时采用如下方法:
(1)把已有的windows用户或组添加为登录账户。
(2)创建新的SQL server登录账户。
(3)使用系统默认的登录账户。
创建登录账户 语句 CREATE LOGIN loginName {WITH <option_list>} {FROM <sources>} Sources
Page 14/28
服务器角色-1
什么是服务器角色(固定服务器角色)
执行服务器级管理操作的用户权限的集合 是系统内置的 不能创建服务器角色 每个角色有一定的权限 登录帐户可以添加到服务器角色 拥有大多数常用管理功能 可以使管理员很方便地给用户授予权限 作用于整个服务器而不是单独的哪个数据库
数据库安全对象范围 数据库用户/应用程序角色/角色/程序集/消息 类型 / 路由 / 服务 / 远程服务绑定 / 全文目录 / 证 书/非对称密钥/对称密钥/约定/架构 架构安全对象范围 类型/XML 架构集合/聚合/约束/函数/过 程/队列/统计信息/同义词/表/视图
Page 6/28
有权限能操作 数据库的用户
SQL Server 验证信任连接
SQL Server 指定登录 用户和角色
数据库用户
或
SQL Server
数据库角色
SQL Server 登录帐户