您的位置:首页 > 数据库 > SQL

SQL Server数据库维护系列之(一)数据库安全

2014-10-30 16:38 183 查看
作者:想念、呐殇          Anhui

转载请注明出处~O~,谢谢!


一、身份验证

        SQL Server2008的安全包括服务器安全和数据安全,服务器安全指什么人可以登录服务器、可以访问哪些数据库以及在数据库里可以访问什么内容。数据安全包括数据的完整性、文件的安全性。使用主键、外键、约束、唯一键、视图、存储过程等维护数据安全。

 1、 登录管理

       验证模式:指服务器如何处理用户名和密码

Windows验证模式:SQL Server2008使用的是Windows操作系统中的信息验证账户名和密码,默认方式,比混合模式安全
混合模式:允许使用Windows身份验证或SQL Server身份验证进行连接。SQL Server2008中不能单独使用SQL Server身份验证模式。
2、密码策略

密码不得包含全部或“部分”用户账户名。部分账户名指3个或3个以上2端用‘空白’或‘-’‘_’‘#’等字符分割的连续字母、数字字符。
密码长度至少为6个字符
过期策略:管理密码的使用期限,系统会提醒用户更改旧密码和账户,并禁用过期的密码
 二、访问权限

    用户登录SQL Server服务器后,不代表用户可以访问所有数据库资源。一个SQL Server服务器有许多个数据库,每个数据库有许多数据表,不可能让每一个登录SQL服务器的账号,都能控制所有的数据库,即使在同一个数据库,每个账号也不一定能访问所有的数据表。
    用户,就是使用SQL Server的人,每个用来登录数据库的账号都是一个用户,通过“用户”这个对象,可以设置数据库的使用权限,同一个数据库可以拥有多个用户,同一个用户也可以同时访问多个数据库。
1、创建SQL Server登录名

创建登录名:服务器名>>安全性>>新建登录>>默认数据库(设置该账号默认数据库)

创建数据库用户:服务器名>>数据库名称>>安全性>>’用户‘>>新建用户>>输入操作数据库的用户名、以及登陆服务器的登录名、选择角色。
删除数据库用户:服务器名>>数据库名称>>安全性>>’用户‘>>删除
    强制实施密码策略:要求一定要输入密码,否则可以设空密码

    强制密码过期:对该密码实施过期策略,管理使用期限,系统提示用户更改旧密码,并禁用带有过期密码的账户。

    用户在下次登录时必须更改密码:首次使用新登录名时,SQL Server会提示用户输入新密码

2、用户权限设置(以管理员身份登录,为某一个登录名设置权限)

安全性里设置:服务器>>安全性>>登录名右击属性>>用户映射(设置可以访问哪些数据库)> 

3、设置角色

     角色是用来指定权限的一种数据库对象,每个数据库都有自己的角色对象,可以为每个角色设置不同的权限。在数据库,一个用户可以同时属于多个角色的成员,那么对数据库的操作权限是这些角色的并集。角色分为三种:

服务器角色:系统内置,不允许设置。
                    bulkadmin :属于该角色的成员,可以执行BULK INSERT语句的权限

dbcreator:该角色仅限于创建和更改数据库
diskadmin: 管理磁盘文件(指派给了什么文件组、附加和分离数据库,等等)
processadmin:  能够管理SQL Server中运行的进程——必要的话,该角色能够终止长时间运行的进程
securityadmin:属于该角色的成员,可以管理登录名及其属性
serveradmin:更改服务器范围的配置选项和关闭服务器
setupadmin:该角色仅限于管理链接服务器和启动过程
          sysadmin:可以在数据库引擎中执行任何活动,是以上所有角色的并集
数据库角色:由SQL Server在数据库级别定义的角色,存在每个数据库中。                                                                                                                                                                     
 db_accessadmin:属于该角色的成员可以为Windows登录账户、Windows组合SQL Server登录账户添加或删除访问权限
 db_backoperator:属于该角色的成员可以备份该数据库
 db_datareader:属于该角色的成员可以读取所有用户表中的数据
 db_datawriter:属于该角色的成员可以读取所有用户表中的数据
 db_ddladmin:属于该角色的成员可以在数据库中运行任何数据定义语言(DLL)
 db_denydatareader:属于该角色成员不能读取数据库内用户表中 的任何数据
 db_denydatawriter:属于该角色的成员不能在数据库内添加、更改或删除任何用户表中的任何数据
db_owner:属于该角色的成员可以执行数据库中所有配置和维护活动
db_securityadmin:属于该角色成员可以修改角色成员身份和管理权限                                                                                                                                                              

应用程序角色:也是一个数据库主体,使应用程序能够用自身的、类似用户的特权运行。使应用程序角色可以只允许通过特定应用程序连接的用户访问特定的数据库。

 三、架构
         架构也是SQL Server安全对象的一部分,架构可以看成是包含数据表、视图、存储过程等的容器。所有数据库对象的引用方法都由四部分组成:“服务器名.数据库名.结构名.对象名”。架构下面可以包含很多安全对象,但不可以包含其他架构。

         架构可以包含的对象有:类型、XML、架构集合、数据表、视图、存储过程、函数、聚合函数、约束、同义词、队列、统计信息。架构中每个对象的名称都必须是唯一的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  SQL 安全 权限 角色 架构