实验06 数据库安全管理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六数据库安全管理
系别:计算机科学与技术系专业班级:计算机科学与技术5班姓名:学号:
实验日期:2013年11月29日验报告日期:2013年12 月 1 日
实验目的:
理解SQL Server2005安全检查的三个层次:登录名、用户和权限;
理解SQL Server 2005中固定角色与自定义角色并掌握通过角色进行授权的方法;
掌握使用Grant/Revoke语句进行权限管理
实验环境及学时安排:
1.SQL SERVER2005
2.学时:2学时
实验准备:
SQL Server2005的安全检查分三个层次
–登陆名:登陆服务器时进行身份验证;
–用户:访问数据库须是数据库的用户或者是某一数据库角色的成员;
–权限:执行语句时须有执行权限
因此如果要一个用户在一个数据库中执行某条SQL语句必须首先为其创建登陆名(登录名可以选择Windows认证也可以选择SQL Server认证。如果选择前者则要求该账号必须是Windows账号)。接着在数据库中创建数据库用户,并让该用户映射已创建的登录名。最后通过GRANT命令或成为某个角色成员获得该用户执行操作的权限。
实验内容:
1、创建示例数据库/表
●创建jiaoxue数据库,并在该数据库下创建Student、Course、SC三个基本表,分
别在三个表中输入必要的数据(该操作使用前面实验的成果)。本次实验的所有操
作均在该数据库下完成。
略。。。
2、创建登陆名
用户可以通过企业管理器或系统提供的存储过程来进行登录帐户的创建。
●首先在Windows中创建用户John,然后在Management Studio中创建登录名John,
选择Windows身份验证。完成后点击工具栏上的“数据库引擎查询”按钮,在弹出的“连接到数据库引擎”窗口中选择Windows验证,使用刚创建的John账号登陆。检验刚创建的登录名是否成功。。
使用Management Studio创建登录名xs, 密码是123456,选择SQL Server验证方式,默认数据库为master。
点击右键新建登录名
使用Create Login创建登陆账户DB_user,密码是zhimakaimen,SQL Server认证方式,默认数据库为master的帐户。
SQL语句为:
create login DB_user
with password='zhimakaimen',
default_database=master;
3、修改和删除登陆名
已建立的登陆账户信息可以使用系统存储过程来修改默认数据库、默认语言、密码或删除用户。
●使用Alter login将帐户DB_user登录名的默认数据库改为jiaoxue。
●使用Alter login将帐户DB_user的密码改为自己的学号。
alter login DB_user
with default_database=jiaoxue,
password='200741402216';
●使用Drop Login删除用户lvhao。
drop login lvhao;
lvhao从栏目中消失
注意:在SQL Server中删除登陆名时,有很多限制。主要有以下几种情况:
a)系统帐户sa不能被删除;
b)已经映射到数据库用户上的登陆名不能被删除;
c)正在使用或连接的登陆名不能被删除;
d)拥有数据库的登陆名不能被删除
4、创建数据库用户
通过将服务器角色赋予不同的服务器登陆名,可以使之获得服务器级别的权限。服务器角色主要是控制服务器端对请求数据库资源的访问权限,他允许或拒绝服务器登陆名的访问操作,但是在设置具体数据库的管理和操作权限方面,服务器对象的权限设置粒度过大。因此为了实现更细粒度的权限管理,sqlserver还提供了数据库级别的对象:数据库用户(User)、数据角色(Role)、数据库架构(Schema)。这三个对象是针对每一个数据库实例的,因此可以对单个数据库实例进行细化权限划分。
对于拥有服务器角色sysadmin的登陆名对象,它可以SQL Server2005中做任何操作(由此可见服务器角色权限粒度之大)。但对那些没有sysadmin角色的登陆名对象,它需要拥有一个能访问特定数据库实例的数据库用户名(User)以实现对该数据库的操作。比如说为登陆名Kelvin想要访问AdventureWorks数据库,但不具备sysadmin的服务器角色。那么则在AdventureWorks数据库中中创建一个名为user_Kelvin的数据库用户。TSQL:USE AdventureWorks; GO; create user user_Kelvin for login Kelvin; 执行之后,用Kelvin登陆名登录的用户与AdventureWorks下的user_Kelvin用户建立起了关联。
使用Management Studio在Jiaoxue数据库中创建数据库用户John,该用户映射登陆帐号John。
右键—>新建用户名
点击确定就完成了
出现了新建的数据库用户名john
使用Create User在Jiaoxue数据库中创建数据库用户DB_user,该用户映射登陆用户DB_user。
use jiaoxue
go
create user DB_user
from login DB_user
go
创建了数据库用户DB_user
5、创建架构(SCHEMA)
使用CREATE SCHEMA/Management Studio创建架构demo。
create schema demo authorization DB_user