10.1 数据库安全问题
数据库的一大特点是数据共享。
数据库系统中的数据不是无条件共享,需根据用户权限实施各级保护。
如医疗档案、银行账户、实验数据、市场营销计划、销售分析、客户数据等。
数据库的安全性指保护数据库以防不合法的使用造成数据泄漏、更改或破坏。
数据库安全控制在数据库应用的不同层次提供安全防范措施,以免数据库应用系统受到有意和无意的损害。
10.1.1 安全认证的过程
1.身份认证,验证用户连接到SQL SERVER数据库服务器的资格;
2.验证用户是否是数据库的合法用户;
3.当用户操作数据库中的数据或对象时,验证用户是否具有操作许可。
10.2 安全账户认证
数据库的安全性指保护数据库以防不合法的使用造成数据泄漏、更改或破坏。
数据库安全控制在数据库应用的不同层次提供安全防范措施,以免数据库应用系统受到有意和无意的损害。
确认登录SQL Server的用户的登录帐号和密码的正确性,验证是否具有连接SQL Server的权限,两种验证方式 :Windows 认证模式、混合认证模式
10.2.1 Windows认证模式
SQL Server从用户登录Windows时提供的用户名和密码中查找当前用户信息,判断是否是SQL SERVER的合法用户。
10.2.2 混合认证模式
混合认证模式允许Windows授权用户和SQL授权用户登录到SQL Server数据库服务器。
使用SQL授权用户登录SQL SERVER时必须提供登录名和密码,SQL SERVER通过这两部分内容来验证用户身份。
10.2.3 登录账户的创建和删除
建立SQL Server服务器登录名的方法:SQL Server Management Studio工具;Tran-SQL语句实现。
10.3 数据库用户
用户具有合法登录帐号后,只能连接到SQL Server服务器上,还不具有访问数据库的能力。只有成为数据库合法用户后,才能访问数据库。
数据库用户一般来自服务器上已有的登录名;让登录名成为数据库用户的操作称作“映射”。
可利用SSMS创建和删除数据库用户。
10.4 权限管理
SQL Server中包括三种类型的权限:对象权限、语句权限和隐含权限。
10.4.1 权限种类
对象权限(DML):对数据库的表、视图等对象中的数据的操作权限。
语句权限(DDL):是否允许执行Create table, Create view等与创建数据库对象有关的操作。
隐含权限:由SQL Server预定义的服务器角色、数据库角色、数据库拥有者、数据库对象拥有者所具有的权限。
10.4.2 权限管理的方式
授予权限:允许用户或角色具有某种操作权
收回权限:不允许用户或角色具有某种操作权,或者收回曾经授予的权限
拒绝访问:拒绝某用户或角色具有某种操作权
10.4.3 Trans-SQL 语句管理对象权限
GRANT:用户授权
REVOKE:用于收回权限
DENY:用于拒绝权限
用户user1授予Student表的查询权
GRANT select on student to user1
收回用户user1对student表的查询权
REVOKE SELECT ON authors FROM user1
拒绝用户user1对student表进行更新
DENY UPDATE ON student TO user1
授予user1创建数据库表的权限
Grant Create Table to user1
收回user1创建数据库表的权限
Revoke Create Table to user1
拒绝user1创建数据库表的权限
Deny Create Table to user1
10.5 角色管理
一组具有相同权限的用户组织在一起称为角色。
同一个部门的员工、同一学校的学生、教师。
将具有相同权限的用户集中在角色中管理,为角色授予合适的权限。
可利用SSMS或T-SQL语句建立角色、为角色授权。