Sql sever 的安全机制包括客户机,网络安全,服务器安全,数据库安全和数据对象安全,在这里的客户机安全就是指系统安全,我们不再赘述,网络安全涉及到加密和压缩,这样会有损网络网路传输速率,得不偿失,所以一般对安全性要求不高的网络都不采用加密技术。我们在这里着重谈谈服务器安全和数据库安全。
服务器方面主要是身份验证方式,有windows身份验证和sql server 身份验证。Windows身份验证应用window本地账号登陆不需要额外输入用户名和密码;sql server 身份验证使用的是脱离系统的存在于sql server 服务器上的用户名和密码进行验证。
当用户顺利通过了服务器的身份验证进入服务器后,它只是登陆了服务器还需要对指定的数据库有一定的权限操作。这就需要加入相应的服务器角色来得到一定的权限。同样,当你得到数据库的权限之后也只是能对管理数据库,还需要对数据对象有一定的权限。
我们学习数据库安全管理要分清两对概念,服务器角色,数据库角色,登录用户,数据库用户。这里的“角色”都是用户的集合相当于windows中的组,那么它的“成员”也就是这里的用户了,即服务器角色是登陆用户的集合,数据库角色是数据库用户的集合。以下是常见的角色名称及其描述。
固定服务器角色 | 描述 |
sysadmin | 执行任何活动 |
dbcreator | 可以创建、更改数据库 |
serveradmin | 可以更改服务器范围的配置选项和关闭服务器 |
securityadmin | 管理和审核登录帐户 |
processadmin | 可以终止 SQL Server 实例中运行的进程 |
setupadmin | 配置复制和链接服务器 |
diskadmin | 用于管理磁盘文件 |
bulkadmin | 可以运行 BULK INSERT 语句 |
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
固定数据库角色 | 描述 |
db_owner | 拥有数据库的所有许可 |
db_securityadmin | 能建立架构、更改角色 |
db_accessadmin | 能添加或删除用户、组或角色 |
db_backupoperator | 能备份数据库 |
db_datareader | 能从数据库表中读数据 |
db_datawriter | 能修改数据库表中的数据 |
db_ddladmin | 能添加、修改或删除数据库对象 |
db_denydatareader | 不能从数据库表中读数据 |
db_denydatawriter | 不修改数据库表中的数据 |
public | 维护默认的权限 |
不管使用哪种身份验证方式,系统管理员登陆帐户密码都不能为空。
服务器角色的特点:
1. 不能添加,删除和修改服务器角色
2. 任何已经被指派到服务器角色的登陆账号可以添加其他登陆账号到这个角色。
3. 可以使用对象资源管理器来从服务器角色中去除登陆账号。
数据库角色:
数据库角色跟服务器角色不同的是,数据库角色除了固定数据库角色之外还有用户定义数据库角色。其特点如下
1. 维护数据库的默认用户权限。
2. 所有用户,角色或组默认属于public角色。
3. 不能被删除,但是可以添加自定义角色。
登陆帐户用于访问SQL SERVER 实例,而数据库用户用于访问数据库。
数据库用户的特殊用户包括dbo和guest,dbo是数据库的所有者,对该数据库具有所有权限,默认具有固定服务器角色sysadmin的成员都自动映射到所有带护具库的dbo用户。Geust用户是来宾用户,也不能被删除,默认只要一个登陆帐号连列到服务器,那么它就一个guest用户的身份。
数据库用户的对该数据库所具有的权限由该帐户所属的数据库角色决定。
转载于:https://blog.51cto.com/flyingdreams/177606