数据库的安全管理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2、登录账号管理---使用SSMS管理登录账号
添加一个Windows NT用户或用户组
例1 (续) :增加windows用户“WTQ-PC\Test”
2、登录账号管理---使用SSMS管理登录账号
添加一个SQL Server用户
例2:增加SQL Server用户,用户名sql,密码pwd
2、登录账号管理---使用SSMS管理登录账号
5、权限管理
许可(权限)用来指定授权用户可以使用的数据库对象 和这些授权用户可以对这些数据库对象执行的操作; 在SQL Server中包括三种类型的许可:对象许可、语句 许可和隐含许可;
5、权限管理---对象许可
表示对特定的数据库对象,即表、视图、字段和存储过 程的操作许可; 它决定了能对表、视图、存储过程等执行哪些操作(如 UPDATE、DELETE、INSERT、EXECUTE); 如果用户想要对某一对象进行操作,其必须具有相应的 操作的权限; 例如,当用户要成功修改表中数据时,则前提条件是已 被授予表的UPDATE 权限;
每个数据库用户都属于 public 数据库角色;
4、角色管理---应用程序角色
应用程序角色是一种比较特殊的由用户定义的数据库角色 如果想让某些用户只能通过特定的应用程序间接地存取数 据库中的数据,而不是直接地存取数据库数据时,就应该 考虑使用应用程序角色; 应用程序角色默认情况下不包含任何成员, 且是非活动的 必须为应用程序角色设计一个密码以激活它;
5、权限管理---使用T-SQL语句管理权限
2、登录账号管理---使用SSMS管理登录账号
删除登录账号
例4:删除登录账号“WTQ-PC\Test”
2、登录账号管理---使用T-SQL命令管理登录账号
添加一个Windows NT用户或用户组
例5:增加windows用户“WTQ-PC\Test”,默认数据库为 DBS
2、登录账号管理---使用T-SQL命令管理登录账号
添加一个SQL Server用户
例6:增加SQL Server用户,用户名sql,密码pwd,默认 数据库为DBS
2、登录账号管理---使用T-SQL命令管理登录账号
修改Leabharlann Baidu录账号
例7:修改登录账号“sql”的属性
2、登录账号管理---使用T-SQL命令管理登录账号
删除登录账号
例8:删除Windows登录账号“WTQ-PC\Test”
5、权限管理---语句许可
例14:为数据库DBS中的用户sql授予备份数据库的权限, 拒绝创建表的权限
5、权限管理---隐含许可
系统自行预定义而不需要授权就有的权限,包括固定服 务器角色、固定数据库角色和数据库对象所有者所拥有 的权限; 例如:服务器角色sysadmin的成员可以在整个服务器范围 内从事任何操作,数据库拥有者db_owner被授予了对其 所创建的数据库的一切权限;
例9:删除SQL Server登录账号“sql”
3、数据库用户管理
数据库用户
登录账号登录成功后,如果想要操作数据库,必须有一个 数据库用户账号,然后为这个数据库用户设置某种角色, 才能进行相应的操作; 数据库用户可以与登录账号相同,也可以不相同; 每个登录帐号在一个数据库中只能有一个用户帐号,但每 个登录帐号可以在不同的数据库中各有一个用户帐号。如 果在新建登录帐号过程中,指定它对某个数据库具有存取 权限,则在该数据库中将自动创建一个与该登录帐号同名 的用户帐号;
2、登录账号管理
查看登录账号
2、登录账号管理---使用SSMS管理登录账号
添加一个Windows NT用户或用户组
例1:增加windows用户“WTQ-PC\Test”
2、登录账号管理---使用SSMS管理登录账号
添加一个Windows NT用户或用户组
例1(续):增加windows用户“WTQ-PC\Test”
5、权限管理---对象许可
例13:为数据库DBS中的用户sql授予对Student表的 select、insert权限,拒绝update、delete权限
5、权限管理---语句许可
指定用户是否具有权限来执行某一语句,这些语句通常 是一些具有管理性的操作,如创建数据库、表、存储过 程等; 还包括备份数据库和事务日志的权限;
SQL Server中有两种角色
固有服务器角色 数据库角色
固有数据库角色 应用程序角色
4、角色管理---固有服务器角色
服务器级角色也称为“固定服务器角色”,因为用户不 能删除,也不能创建新的服务器级角色; 服务器级角色的权限作用域为服务器范围。 可以向服务器级角色中添加 SQL Server 登录名、 Windows 帐户和 Windows 组。固定服务器角色的每个 成员都可以向其所属角色添加其他登录名。
1、SQL Server的安全机制
两种身份验证模式
两种身份验证模式:Windows身份验证和混合验证(即 Windows验证或SQL Server验证) Windows身份验证
使用Windows操作系统的安全机制验证用户身份,只要用户 能够通过Windows用户账号验证,即可连接到SQL Server而不 再进行身份验证
添加一个SQL Server用户
例2 (续) :增加SQL Server用户,用户名sql,密码pwd
2、登录账号管理---使用SSMS管理登录账号
修改登录账号
例3:修改登录账号“sql”的属性
2、登录账号管理---使用SSMS管理登录账号
修改登录账号
例3 (续) :修改登录账号“sql”的属性
访问许可 用来指定登录用户可以使用的数据库对象(如表、视图、存 储过程、函数等)以及可以对这些对象执行的操作
1、SQL Server的安全机制
SQL Server 的安全机制主要包括三个等级
服务器级别的安全性
主要通过登录账号进行控制,要想访问一个数据库服务器, 必须拥有一个登录账号,登录账号可以是windows账号或组, 也可以是SQLServer的登录账号;登录账号可以属于相应的服 务器角色;
3、数据库用户管理
删除数据库用户
例12:删除数据库DBS中数据库用户sql
4、角色管理
利用角色,SQL Server 管理者可以将某些用户设置为某一角 色,这样只对角色进行权限设置便可实现对所有用户权限的设 置,大大减少了管理员的工作量; “角色”类似于 Microsoft Windows 操作系统中的“组”
混合验证
对于可信任连接用户(由Windows验证),系统直接采用 Windows的身份验证机制 否则采用SQL Server身份验证模式,用户在连接SQL Server时 必须提供登录名和密码,这些登陆信息存储在系统表 syslogins中,与Windows的登陆帐号无关
1、SQL Server的安全机制
3、数据库用户管理
创建数据库用户
例10:在数据库DBS中创建数据库用户
3、数据库用户管理
创建数据库用户
例 10 (续) :在数据库DBS中创建数据库用户
3、数据库用户管理
创建数据库用户
例10 (续) :在数据库DBS中创建数据库用户
3、数据库用户管理
修改数据库用户
例11:修改数据库DBS中数据库用户sql
身份验证模式设置
2、登录账号管理
登录账号
是服务器级用户访问数据库系统的标识 为了访问SQL Server系统,用户必须提供正确的登录账号 ,这些登录账号既可以是Windows登录账号,也可以是 SQL Server登录账号,但它必须是符合标识符规则的惟一 名字 登录账号的信息是系统信息,存储在master数据库的 sysxlogins系统表中,用户如需要有关登录账号的信息可以 到该表中查询
第14章 数据库的安全管理
教学内容
1、SQL Server的安全机制 2、登录账号管理 3、数据库用户管理 4、角色管理 5、权限管理
第14章 数据库的安全管理
教学目的与要求
了解SQL Server的安全机制与身份验证模式; 理解登录账号与数据库用户的区别; 了解服务器角色与数据库角色; 掌握语句权限与对象权限的管理;
5、权限管理---使用T-SQL语句管理权限
GRANT 授予权限 DENY 拒绝权限 REVOKE 撤销权限
5、权限管理---使用T-SQL语句管理权限
例15:将查询Student表的权限授予用户sql
例16:将Student表全部操作权限授予用户sql
例17:将SC表的查询权限授予所有用户
例18:将查询Student表和修改Sname的权限授予用户sql
4、角色管理---固有数据库角色
固定数据库角色是在数据库级别定义的,并且存在于每个 数据库中; 一个数据库角色只在其所在的数据库中有效,对其他数据 库无效; 可以向数据库级角色中添加任何数据库帐户和其他 SQL Server 角色; 用户不能删除固有的数据库角色;
4、角色管理---固定数据库角色
4、角色管理---固有服务器角色
4、角色管理---固有服务器角色
sysadmin :可以在服务器上执行任何活动; Serveradmin:可以更改服务器范围的配置选项和关闭服务器 securityadmin :可以管理登录名及其属性; processadmin :可以终止在SQL Server 实例中运行的进程 setupadmin :可以添加和删除链接服务器; bulkadmin :可以运行 BULK INSERT 语句; diskadmin :用于管理磁盘文件; dbcreator :可以创建、更改、删除和还原任何数据库; 每个 SQL Server 登录名都属于 public 服务器角色;
数据库级别的安全性
主要通过数据库用户进行控制,要想访问一个数据库,必须 拥有该数据库的一个用户,数据库用户是通过登录账号进行 映射的,可以属于固定的数据库角色或自定义的数据库角色;
数据对象级别的安全性
通过设置数据对象的访问权限进行控制的;
1、SQL Server的安全机制
SQL Server 的安全机制主要包括三个等级
第14章 数据库的安全管理
重点
身份验证模式; 登录账号、数据库用户; 对象权限、语句权限;
难点
GRANT、REVOKE、DENY
1、SQL Server的安全机制
SQL Server的安全性是建立在身份验证和访问许可两种 安全机制上的;
身份验证 用来确定登录SQL Server的用户的登录账号和密码是否正确, 以此来验证其是否具有连接SQL Server的权限 通过身份验证并不代表其能够访问SQL Server中的数据库对象
2、登录账号管理---使用SSMS管理登录账号
修改登录账号
例3 (续) :修改登录账号“sql”的属性
2、登录账号管理---使用SSMS管理登录账号
修改登录账号
例3 (续) :修改登录账号“sql”的属性
2、登录账号管理---使用SSMS管理登录账号
修改登录账号
例3 (续) :修改登录账号“sql”的属性
4、角色管理---固定数据库角色
db_owner :可以执行数据库的所有配置和维护活动,还可以删除数 据库; db_securityadmin:可以修改角色成员身份和管理权限; db_accessadmin:可以为 Windows 登录名、Windows 组和 SQL Server 登录名添加或删除数据库访问权限; db_backupoperator:可以备份数据库; db_ddladmin:可以在数据库中运行任何数据定义语言 (DDL) 命令 db_datawriter:可以在所有用户表中添加、删除或更改数据; db_datareader:可以从所有用户表中读取所有数据; db_denydatawriter:不能添加、修改或删除数据库内用户表中的任 何数据; db_denydatareader:不能读取数据库内用户表中的任何数据;
3、数据库用户管理
登录账号与数据库用户的区别
一个合法的登录账号只表明该账号通过了NT认证或SQL Server 认证,但不能表明其可以对数据库数据和数据对象 进行某种或某些操作 只有当其同时拥有了数据库用户账号后,才能够访问相应 的数据库 一个登录账号总是与一个或多个数据库用户账号(这些账 号必须分别存在相异的数据库中)相对应,这样才可以访 问数据库 例如,登录账号sa 自动与每一个数据库用户dbo 相关联