当前位置:文档之家› 数据库用户管理(用户管理,权限分配)

数据库用户管理(用户管理,权限分配)

学习资料:数据库用户管理
SQL Server的安全包括服务器安全和数据安全两部分。

服务器安全是指可以SQL Server数据库服务器的登录管理、数据库数据的访问安全等,数据安全则包括数据的完整性、数据库文件的安全性。

因此,如果你准备访问SQL Server数据库的数据,你应该具有SQL Server登录帐户和访问数据库的权限。

下面逐一讲解如何创建登录帐户、如何创建数据库用户和如何给用户授权。

一、SQL Server身份验证
在登录SQL Server时,需要选择身份验证的方式,SQL Server支持以下两种身份验证。

Windows身份验证。

SQL Server身份验证。

简单地说,Windows身份验证是使用当前登录到操作系统的用户去登录,而SQL Server身份验证是使用SQL Server中建立的用户去登录。

登录验证通过以后,就可以像管理本机SQL Server一样来管理远程机上的SQL Server 服务。

二、建立登录帐户并赋予权限
与创建数据库一样,建立SQL Server数据库的登录名、用户名,为其赋予权限也有两种方式。

1)使用SQL Server Management Studio建立登录账户并赋予权限
2)使用T-SQL建立登录账户并赋予权限
1.在SQL Server Management Studio中建立登录账户并赋予权限在SQL Server Management Studio中,通常需要进行三步操作。

1)建立SQL Server登录名
在SQL Server Management Studio中,建立登录的步骤如下。

(1)在“安全性”节点下,右击“登录名”,在右键菜单中选择“新建登录名”选项。

(2)在新建登录对话框中输入用户的名称、SQL Server身份验证的密码,并指定其默认的数据库。

(3)有了登录名之后,还需要赋予该登录名操作权限,否则它将只能连接到服务器,而没有任何的操作权限。

操作权限分为两类。

第一类是指该用户在服务器范围内能够执行哪些操作,这一类权限由固定的服务器角色来确定。

可以在“服务器角色”一项中设置该用户对服务器的操作权限。

固定的服务器角色一共分为8种,各自具有不同的操作权限。

例如dbcreator 固定服务器角色可以创建、更改、删除和还原任何数据库。

第二类权限是指该登录名对指定的数据库的操作权限。

可以在“用户映射”一项中设置特定数据库的权限。

固定的数据库操作权限有10个。

如db_backupoperator权限可以备份数据库、db_datareader可以读取数据库中的数据、db_denydatareader不允许读取数据。

2)建立数据库用户
每个数据库都有自己的用户列表,如果在建立登录名时没有为其指定一定的服务器角色或用户映射(即为其分配必要的操作权限),则还可以通过建立数据库用户来赋予登录名权限。

数据库用户和登录名是相互链接的权限管理机制,建立数据库用户的步骤如下。

(1)在指定数据库“安全性”节点下,右击“用户”,在右键菜单中选择“新建用户”选项。

(2)在新建对话框中输入用户的名称,选择关联的登录名,如图1.10所示。

图1.10 创建关联登录名
3)赋予用户访问数据库的权限
有了用户名和关联登录名之后,还需要赋予用户对该数据库的操作权限。

至此,数据库用户创建完毕。

此时使用创建用户时选择的关联登录名进行登录后,即
具备了该数据库的相应操作权限。

2.使用T-SQL向数据库用户授权
1)建立数据库管理系统登录名
添加Windows登录帐户需要调用T-SQL的CREATE LOGIN语句,其用法为:
语法
CREATE LOGIN [windows域名\域帐户] FROM WINDOWS;
创建带密码的SQL登录帐名需要调用T-SQL的CREATE USER语句的语法为:语法
CREATE LOGIN <loginName> WITH PASSWORD = '<enterStrongPasswordHere>';
示例4
/*--添加Windows登录帐户--*/
--windows用户jbtraining\ s26301为SQL Server登录名
CREATE LOGIN [jbtraining\s26301] FROM WINDOWS;
/*--添加SQL登录帐户--*/
--登录名为zhangsan,密码为1234
CREATE LOGIN zhangsan WITH PASSWORD = '1234';
2)建立数据库用户
创建数据库用户的语法如下。

语法
CREATE USER 数据库用户FOR LOGIN 登录帐户;
其中,“数据库用户”为可选参数,默认为登录帐户,即数据库用户默认和登录帐户同名。

示例5
/*--在TrainingBase数据库中添加两个用户--*/
USE TrainingBase
GO
--将用户名S26301DB与登录名jbtraining\S26301建立关联
CREATE USER S26301DB FOR LOGIN [jbtraining\S26301]
GO
--将用户名zhangsanDBUser与登录名zhangsan 建立关联
CREATE USER zhangsanDBUser FOR LOGIN zhangsan
GO
3)向数据库用户授权
访问表的常用权限包括:添加数据(insert)、删除数据(delete)、更新数据(update)、查看数据(select)和创建表(create table)等操作。

授权语句的语法为:语法
GRANT 权限[ON 表名] TO 数据库用户
示例6
USE TrainingBase
GO
/*--为zhangsanDBUser分配对表trainee的select, insert, update权限--*/
GRANT select, insert, update ON trainee TO zhangsanDBUser
/*--为S26301DBUser分配建表的权限--*/ GRANT create table TO S26301DBUser。

相关主题