数据库实验(数据库安全管理)

一、实验目的:

了解SQL Server 2000中的两种用户登录模式;

熟悉SQL Server 2000中登录帐户、用户、角色、权限的概念;

掌握SQL Server 2000中创建帐户、数据库用户的方法,会使用角色来分配权限

 

二、实验准备:

SQL Server的用户权限控制是SQL Server一个最重要的管理概念,也是众多管理任务之一。SQL Server的登录方式有标准SQL Server登录和集成Windows系统登录两种。

SQL Server集成的安全登录模式即将Windows系统的用户和工作组映射为SQL Server的登陆帐户。Windows集成登录模式实际上是让Windows系统代替SQL Server执行对登陆审查的任务。

如果要采用SQL Server管理的安全登录模式实现SQL Server服务器的登录连接,用户必须拥有合法的帐号和正确的密码。由SQL Server系统本身来进行用户的身份验证。

 

三、实验内容:

                  

 

1、创建登录帐户

用户可以通过企业管理器或系统提供的存储过程来进行登录帐户的创建。这里使用系统存储过程来创建。

下面的例子创建了一个登陆帐户:

语句:sp_addlogin  帐户名,密码,默认数据库;

数据库实验(数据库安全管理)_第1张图片

数据库实验(数据库安全管理)_第2张图片

这个例子创建了一个名为164, 密码是000000,默认数据库为student的帐户。在建立用户的登录帐号信息时,用户应该选择默认的数据库,以后每次连接上服务器后,系统都会自动转到默认的数据库上。这里也可以不指定数据库,系统默认为master库。 

2、修改和删除帐户

建立完成的帐户信息还可以进行修改。用户可以使用系统存储过程sp_defaultdb,sp_defaultlanguage来修改默认数据库和默认语言。例如:

语句:sp_defaultdb  帐户名,目标数据库;

           sp_defaultdb   帐户名,目标语言;

数据库实验(数据库安全管理)_第3张图片

自己创建的数据库是已经建好的数据库名,将帐户的默认数据库改为该数据库。

 

(系统默认是‘Simplified Chinese’,建议使用默认项。)

返回的结果是:

默认数据库已更改为student。

164 的默认语言已改为 English。

数据库实验(数据库安全管理)_第4张图片

使用系统存储过程sp_password可修改SQL Server的帐户密码,如:

语句:sp_password  原密码,新密码,目标帐户;

该例子修改了164的帐户密码。

要删除 SQL Server标准登录帐户可以使用系统存储过程sp_droplogin,例如:

语句:sp_droplogin  帐户名;

数据库实验(数据库安全管理)_第5张图片

数据库实验(数据库安全管理)_第6张图片

在SQL Server中删除帐户信息时,有很多限制。主要有以下几种情况:

系统帐户sa不能被删除;

已经映射到数据库用户上的帐户不能被删除;

正在使用或连接的帐户不能被删除;

拥有数据库的帐户不能被删除

 

3、添加数据库用户

    以上的操作只是建立了登录SQL Server的帐户,用户登录后还不能对数据库进行访问,将登录帐户添加为数据库用户后,使用登录帐户登录的SQL Server的用户就可以实现对数据库的访问。

    添加数据库用户可通过存储过程sp_grantdbaccess来实现,参照下面的例子将你的帐户添加为student的用户。

sp_grantdbaccess  数据库用户名;

数据库实验(数据库安全管理)_第7张图片

数据库实验(数据库安全管理)_第8张图片

4、删除数据库用户

  可以使用系统存储过程sp_revokedbaccess来删除数据库用户,更确切地说,是断开SQL Server的登录帐户与数据库用户之间的对应关系。

语句:sp_revokedbaccess   目标数据库用户名

数据库实验(数据库安全管理)_第9张图片

返回结果为:

用户已从当前数据库中除去。

 

数据库实验(数据库安全管理)_第10张图片

5、角色

角色是SQL Server2000引进的用来集中管理数据库或服务器权限的概念。数据库管理员将数据库的权限赋予角色,然后将角色再赋予给数据库用户或登录帐户,从而是数据库用户或登录帐户拥有相应的权限。

SQL Server提供了固定服务器角色和数据库角色,用户可以修改固定数据库角色的权限,也可以自己创建新的数据库角色,在分配权限给新的角色。

(1)固定服务器角色

使用系统存储过程sp_helpsrvrole可以浏览固定服务器角色的内容。

数据库实验(数据库安全管理)_第11张图片

存储过程sp_addsrvrolemember可以将某固定服务器角色分配给某给定的登录帐户。

下面的操作将登录帐户164添加为服务器角色sysadmin的成员,使其具有创建和修改数据库的权利:

语句:sysadmin  帐户名,目标服务器角色名;

数据库实验(数据库安全管理)_第12张图片

数据库实验(数据库安全管理)_第13张图片

存储过程sp_dropsrvrolemember可以收回分配给某给定的登录帐户的指定固定服务器角色。

这个例子收回了分配给登录帐户164的固定服务器角色sysadmin.

语句:sp_dropsrvrolemembe 帐户名,目标服务器角色;

数据库实验(数据库安全管理)_第14张图片

数据库实验(数据库安全管理)_第15张图片

(2)固定数据库角色

 使用系统存储过程sp_helpdbfixedrole可以浏览所有的固定数据库角色的相关内容。如:

数据库实验(数据库安全管理)_第16张图片

用存储过程sp_addrolemember可将某个登录帐户增加到某个固定数据库角色中,从而使该帐户拥有指定固定数据库角色所拥有的所有权限。

语句:sp_addrolemember  帐户名,目标数据库角色名;

进行下面的操作给你的帐户授予对student库的只读权限。

数据库实验(数据库安全管理)_第17张图片

数据库实验(数据库安全管理)_第18张图片

同样使用sp_droprolemember可以从某个固定数据库角色中删除指定的登录帐户,从而收回分配的对student库的只读权限。

语句:sp_drprolemember  帐户名,目标数据库角色名;

数据库实验(数据库安全管理)_第19张图片

数据库实验(数据库安全管理)_第20张图片

四、思考题

1.  思考身份验证模式与登录帐号的关系及如何用各种帐号进行登录;

身份验证模式有两种,一种是Windows身份验证,一种是混合验证。

Windows验证模式下,SQL servers数据库是运行在Windows的系统上,电脑自带的系统有作为网络操作系统的,本身就具有管理登录,验证用户和合法性的能力,所以Windows正是利用这一机制,在该模式下,用户只要通过Windows的认证就可以链接到SQL server并进行使用。

混合验证模式下,用户既可以通过Windows的认证链接到SQL server,也可以使用SQL server认证,不过,在SQL server认证模式下,用户在链接SQL server时必须提供用户名和密码。

2.登录帐号、数据库用户及数据库角色之间的关系;

在SQL server中,尝试登陆服务器时,SQL server要验证登陆账号;当尝试连接数据库时,SQL server要验证数据库用户,数据库用户包含在数据库角色中。

3.数据库用户、数据库角色与数据库对象之间的关系,并说出直接对用户授权与间接对用户授权(系统权限与对象权限)的方法;

数据库用户用来指出那一一个人可以访问哪个数据库,是对用户直接授权,而数据库角色是

数据库直接授权给数据库角色,再把数据库角色指派给数据库用户,而不用直接对数据库用

户直接授权,数据库对象是指数据库用户或角色可以访问指定数据库中全部或者部分表,视

图等数据库对象的权限。

直接对用户授权:使用grant语句,指向对象设为目标用户。

间接对用户授权:使用grant语句,指向对象设为目标用户,而是设置为其他用户或者角色,再通过其他用户或角色把权限给目标用户。

4.固定服务器角色、固定数据库角色、自定义数据库角色与应用程序角色的区别与验证其权限的方法。

所有预定义的数据库角色和管理者自定义的某一角色都是自定义角色,应用程序角色是应用程序间接地存取数据库中数据而使用的角色,应用角色不具有组的角色。

 

你可能感兴趣的:(数据库,数据库实验)