Sql Server 安全性实验

来源:互联网 发布:linux 502端口映射 编辑:程序博客网 时间:2024/05/22 15:46

实验目的

探究不同等级的用户对数据库的操作权限,从而
使得数据库在多用户操作是的安全。

实验内容

1.首先创建三个用户

create login T with password = '123456';create login M with password = '123456';create login J with password = '123456';

这里写图片描述
用户创建成功
这里写图片描述

2.分别为三个登录名在“saft”数据库映射三个数据库用户,数据库用户名为Tom,Mary和John,使这三个登录名可以访问“saft”数据库。

use saftgocreate user Tom for login Tcreate user Mary for login Mcreate user John for login J

3.授予用户John创建表的权限。

grant alter on schema :: dbo to John
grant create table
to John
这里写图片描述

4.创建三个表格

转换到用户John

USE saft;CREATE TABLE A(id int PRIMARY KEY,name VARCHAR NOT NULL,class VARCHAR NOT NULL,taechar VARCHAR NOT NULL);CREATE TABLE B(mid int PRIMARY KEY,major VARCHAR(30) NOT NULL,lader VARCHAR(30) NOT NULL,);CREATE TABLE C(cid int PRIMARY KEY,sub VARCHAR(30) NOT NULL,teach VARCHAR(30) NOT NULL,);

这里写图片描述
这里写图片描述

5.完成以下授权:

(1)把对表A的INSERT权力授予用户Tom,并允许他再将此权限授予其他用户。
grant inserton Ato Tomwith grant option

这里写图片描述
转换用户为Tom

use saftinsert into A (id,name,class,teachar)values (1'name_1','1525','Guo')

这里写图片描述

成功的添加。

(2)用户Mary对S,P,J三个表有SELECT和INSERT权力 grant
grant select,inserton Ato Marygrant select,inserton Bto Marygrant select,inserton Cto Mary

这里写图片描述
转换用户为Mary

use saftinsert into A (id,name,class,teachar)values (2,'name_2','1525','bai')insert into B(mid,major,lader)values ('1','软件工程','li')insert into C(cid,sub,teach)values ('1','数据库','guo')select * from Aselect * from Bselect * from C

这里写图片描述
授权成功

(3)用户Tom对ABC表有DELETE权力,对CLASS字段具有UPDATE权力。
grant delete,update(calss)on Ato Tomgrant delete,update(calss)on Bto Tomgrant delete,update(calss)on Cto Tom

这里写图片描述
转换用户为Tom

update Aset class=class+1where id = 2delete from Awhere id=2

这里写图片描述
成功删除id=2还有更改id=1的class的值

(4)把对用户Tom授予的所有权力收回
revoke delete,update(class)on Afrom Tomrevoke inserton Afrom Tom cascade

这里写图片描述

(5)对用户Mary增加A表的SELECT权力。
grant selecton Ato Marygrant selecton Bto Marygrant selecton Cto Mary

这里写图片描述
转换成Mary用户

select * from A where id=1select * from B where mid=1select * from C where cid=1

这里写图片描述
查询功能授权成功

(6)拒绝Mary对表B的INSERT权限。
deny inserton Bto Mary

这里写图片描述
转换成Mary用户

insert into B(mid,major,lader)values (2,'数据结构','wang')

这里写图片描述
成功撤销Mary的添加功能。

出现问题

这里写图片描述

出现用户无法登录,通过查询百度找到了解决方案。
如何解决sql server18456错误

只需要重新设置密码就可以。
这里写图片描述
如果需要彻底解决问题,需要重新设置属性。
右击数据库引擎,选择属性
数据身份验证选择sql server身份验证,
这里写图片描述
右键点击数据库引擎,选择重新启动,重启后就可以登陆了。
打开运行按钮,输入gpedit.msc,进入本地组策略编辑器
这里写图片描述
选择计算机配置,选择windows设置,选择安全设置,选择账户策略下的秘密策略,右边框有一个密码最长使用期限,改的时间长一点就行了或者设置为0则密码不过期。
这里写图片描述

实验总结

通过这次实验,了解了SQL SERVER的授权机制,对数据库安全性有了更深刻的了解。对数据库所需环境配置,windows系统更加了解。收获颇丰。

0 0
原创粉丝点击