查看: 778|回复: 0

[SQLServer] SQL Server权限设置

发表于 2018-1-24 08:00:01

随着网络的不但发展、黑客技术的日益增长,针对于SQL Server数据库的攻击也越来越多,很多企业的机密数据受到一定的威胁。如何多方便的加强SQL Server的安全性呢?


一、SQL Server的安全机制

SQL Server的安全机制主要包括以下四个方面:

(1)客户机的安全机制:用户必须能够登录客户机,然后使用应用程序或管理工具来访问数据库,对于Windows系统的客户来说,主要涉及到操作系统的安全,主要是Windows账号的安全


(2) 服务器的安全机制:用户登录服务器时,必须使用一个账号和密码,服务器会按照不同的身份验证方式判断这个账号和密码的正确性


(3) 数据库的安全机制:任何能够登录到服务器的账号和密码都对应着一个默认的数据库,SQL Server对数据库级的权限管理采用的是“数据库用户”的概念


(4) 数据对象的安全机制:用户通过前面三道防线才能访问数据库的数据对象(如表、视图),常见的访问权限包括数据的查询、更新、插入、删除



二、登录权限设置

SQL Server有两种身份验证模式:

Windows身份验证模式:使用操作系统中Windows用户和密码登录,SQL Server不要求提供密码,也不执行身份验证。Windows身份验证使用了Kerberos安全协议,比SQL Server身份验证更安全。适用于局域网内部(如AD域)访问数据库的情况

SQL Server和Windows身份验证模式:又称混合验证模式,允许使用用户使用Windows身份验证和SQL Server身份验证进行连接

打开SSMS,右击“SQL Server实例”,选择属性,选择安全性,可以设置身份验证模式,如图所示:

杨书凡00.png


可以使用SSMS创建管理登录账户,依次展开“SQL Server实例”,安全性,右击登录名、新建登录名,如下图所示:

杨书凡01.png



三、访问许可权限设置

访问许可权限设置可以分别从服务器、数据库、对象三个级别进行设置,可以把SQL Server比作一个酒店,如下图所示:

杨书凡02.png

1. 服务器级别权限设置

在SQL Server中内置了一组服务器角色,用来执行服务器级别的管理,如创建数据库、管理和审核登陆账户等,作用于整台服务器,而非单个数据库。

杨书凡03.png


为用户分配服务器级别的权限的步骤如下:

在SSMS中依次展开“SQL Server实例”,安全性,右击某个登录名,选择属性,选择服务器角色,设置需要赋予该用户的权限,如下图所示:

杨书凡04.png


2. 数据库级别的权限设置

建立了SQL Server登录账户后,需要赋予用户权限,才能对数据库进行操作。如果需要访问某个数据库,则需要在该数据库中建立相应的数据库用户,数据库用户是映射到登录账户上的。

例如:在MySchool数据库上建立一个用户User2,则该用户对应到一个登录账户User2,依次展开数据库MySchool、安全性、右击用户,选择新建用户,打开“数据库-新建”窗口,进行相关设置,如下图所示:

杨书凡06.png

杨书凡05.png

为用户设置数据库级别的具体步骤如下:

在SSMS中依次展开“SQL Server实例”,安全性,右击某个登录名,选择属性,选择用户映射,设置需要赋予该用户的权限,如下图所示:

杨书凡07.png


当数据库角色不能满足需求时,还可以创建数据库角色

依次展开数据库MySchool、安全性,右击角色,新建数据库角色


3. 对象级别权限设置

一个数据库中通常包含多个数据表、视图、存储过程等,可在单个表上为用户授予权限

(1)为表授权

在SSMS上找到需要授权的表,右击该表,选择属性、权限,单击搜索,添加需要授权的用户,在下方选择需要授予用户的权限

杨书凡08.png


(2)为数据库授权

数据库本身也是对象,授权方式和表类似,右击数据库、属性、权限

杨书凡09.png


(3)为存储过程授权

依次展开服务器 、数据库、选择数据库、可编程性、存储过程 、属性、权限

杨书凡11.png










回复

使用道具 举报