掌握创建数据库用户的方法掌握用户权限的分配与回收.docx

上传人:b****4 文档编号:4264471 上传时间:2022-11-28 格式:DOCX 页数:24 大小:2.74MB
下载 相关 举报
掌握创建数据库用户的方法掌握用户权限的分配与回收.docx_第1页
第1页 / 共24页
掌握创建数据库用户的方法掌握用户权限的分配与回收.docx_第2页
第2页 / 共24页
掌握创建数据库用户的方法掌握用户权限的分配与回收.docx_第3页
第3页 / 共24页
掌握创建数据库用户的方法掌握用户权限的分配与回收.docx_第4页
第4页 / 共24页
掌握创建数据库用户的方法掌握用户权限的分配与回收.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

掌握创建数据库用户的方法掌握用户权限的分配与回收.docx

《掌握创建数据库用户的方法掌握用户权限的分配与回收.docx》由会员分享,可在线阅读,更多相关《掌握创建数据库用户的方法掌握用户权限的分配与回收.docx(24页珍藏版)》请在冰豆网上搜索。

掌握创建数据库用户的方法掌握用户权限的分配与回收.docx

掌握创建数据库用户的方法掌握用户权限的分配与回收

数据库系统原理实验报告一、实验目的

1.理解数据库的安全机制。

2.掌握创建数据库用户的方法。

3.掌握用户权限的分配与回收。

4.掌握使用角色实现数据库安全性的方法。

二、实验内容

1、数据库用户的添加

2、用户权限的分配与回收

3、角色的创建与管理

说明:

PostgreSQL权限分为两部分,一部分是“系统权限”或者数据库用户的属性;一部分为数据库对象上的操作权限。

PostgreSQL中用户都以‘角色’的方式进行管理,角色都以“组角色”的方式进行管理。

用户和角色的区别是角色没有login权限。

三、实验步骤

1.创建之前实验中使用的数据表(Student,Course,SC)或者(Employee、Salary,Department)。

代码:

CREATETABLEEmployee_1511630117

EmployeeIDCHAR(6)NOTNULLPRIMARYKEY,

NameCHAR(10)NOTNULL,

BirthdayDateNOTNULL,

SexBit

(1)NOTNULL,

AddressCHAR(20),

ZipCHAR(6),

PhoneNumberCHAR(12),

EmailAddressCHAR(30),

DepartmentIDCHAR(3)NOTNULL,

FOREIGNKEY(DepartmentID)REFERENCES

departments_1511630117(DepartmentID)

CREATETABLEDepartments_1511630117

DepartmentIDCHAR(3)NOTNULLPRIMARYKEY,DepartmentNameCHAR(20)NOTNULL,

NoteCHAR(16)

CREATETABLESalary_1511630117

EmployeeIDChar(6)NOTNULL,

FOREIGNKEY(EmployeeID)REFERENCESEmployee_1511630117(EmployeeID),IncomeFloat(8)NOTNULL,

OutComeFloat(8)NOTNULL

2.创建新用户

createuseruser_1511630117password'xbs5417';

(a)查看对象浏览器中“登录角色”里面会出现刚刚创建的新用户(需要刷新)。

(b)点击刚刚创建的用户,查看左侧窗口中出现的用户的属性,注意该用户是否具有登录

权限。

3.创建角色

createrolerole_1511630117;

(a)查看对象浏览器中“组角色”里面会出现刚刚创建的角色(需要刷新)。

(b)点击刚刚创建的用户,查看左侧窗口中出现的角色的属性,注意该角色是否具有登录

权限。

4.使用新创建的用户名和密码连接数据库,新建一个连接(新命名)。

在下面

窗口输入相关的信息。

登录之后,输入一个查询语句,查询任意一个表中的信息。

查看执行的结果,并分析原

因。

select

departmentid,name,birthday,sex,address,zip,PhoneNumber,EmailAddress,Departme

ntID

fromemployee_1511630117;

原因:

图中以显示,权限不够

5.使用默认的postgres用户的连接(原有的那个),重新连接数据库。

四、实验任务

1.把查询employee表的权限授给新用户”user_1511630117”。

grantselect

onemployee_1511630117

touser_1511630117;

2.把表的全部权限授予新用户”user_1511630117”。

grantallprivileges

ondepartments_1511630117

touser_1511630117;

3.

像上面的步骤4一样,利用新用户连接数据库,并向

employee_1511630117表插入一条数据。

如何处理?

insertinto

employee_1511630117(employeeid,name,birthday,sex,address,zip,phonenumber,e

mailaddress,departmentid)

values('1001','许秉圣','19961204','0','天津

','475001','3880378','xbs@','1');

如何处理:

给予employee_1511630117插入权限即可Grantinsert

Onemployee_1511630117

Touser_1511630117;

授予权限后再次插入,显示成功。

4.

利用默认账户连接数据库,再创建两个新的用户,”user_1511630117_2”,

“user_1511630117_3”

createuseruser_1511630117_2password'xbs5417';

createuseruser_1511630117_3password'xbs5417';

5.

把查询

Employee

表和修改employeeid的权限授给用户”

user_1511630117_2”

grantselect,update

onemployee_1511630117

touser_1511630117_2;

6.把对表Salary_1511630117的查询权限授予所有用户GRANTSELECT

ONTABLESalary_1511630117

TOPublic;

7.把对表Salary_1511630117的INSERT权限授予用户”user_1511630117”,并允许他再将此权限授予其他用户。

GRANTINSERT

ONSalary_1511630117

TOuser_1511630117

WITHGRANTOPTION;

8.

把用户”user_1511630117_2”修改employeeid权限收回,利用”

user_1511630117_2”连接数据库;验证更新employeeid的操作是否能够进行。

收回权限:

revokeall

onTABLEemployee_1511630117

fromuser_1511630117_2;

在user_1511630117_2上更新employeeidupdateemployee_1511630117

setemployeeid='2001'

whereemployeeid='1001';

因为权限已经收回,所以显示错误

9.

收回所有用户对表Salary_1511630117的查询权限,利用”

user_1511630117_2”连接数据库验证查询操作是否能够进行。

回收权限:

revokeall

onTABLESalary_1511630117

frompublic;

利用”user_1511630117_2”连接数据库验证查询操作是否能够进行:

select

employeeid,name,birthday,sex,address,zip,PhoneNumber,EmailAddress,Department

ID

fromemployee_1511630117;

因为权限已经收回,所以显示错误

10.收回新创建的用户的所有权限。

revokeall

onTABLEemployee_1511630117,departments_1511630117,salary_1511630117

frompublic;

11.创建角色role_1511630117createrolerole_1511630117

12.将Employee_1511630117表的SELECT、UPDATE、INSERT权限授予新创建的角色”role_1511630117”。

grantselect,update,insert

onemployee_1511630117

torole_1511630117;

13.将新建的角色role_1511630117授予用户”user_1511630117”,并进行验证是否拥有相应的权限

grantrole_1511630117

touser_1511630117;

验证是否拥有相应的权限

查询:

select

employeeid,name,birthday,sex,address,zip,PhoneNumber,EmailAddress,Department

ID

fromemployee_1511630117;

更新:

updateemployee_1511630117

setzip=475002

wherezip='475001'

插入:

insertinto

employee_1511630117(employeeid,name,birthday,sex,address,zip,phonenumber,e

mailaddress,departmentid)

values('1002','许秉圣','19961204','0','天津

','475003','3880355','xbs@','1');

14.

将新建的角色

role_1511630117授予用户”user_1511630117_2”和”

user_1511630117_3”

grantrole_1511630117

touser_1511630117_2;

grantrole_1511630117

touser_1511630117_3;

15.从“user_1511630117_3”中收回角色“role_1511630117”拥有的三个权限。

Revokerole_1511630117

fromuser_1511630117_3;

16.为角色”role_1511630117”增加employee_1511630117表的DELETE权限。

grantdelete

onemployee_1511630117

torole_1511630117

17.从角色”role_1511630117”收回employee_1511630117表的select权限。

revokeselect

onTABLEemployee_1511630117

fromrole_1511630117;

18.删除创建的角色role_151160117。

droprolerole_1511630117;

最开始删除不了,因为employee_1511630117对其有依赖,解决办法在后遇到的问题详述。

19.删除创建的用户。

dropuseruser_1511630117_3;

5、思考数据库中对象的权限类型有哪些?

决定用户对数据库对象所执行的操作,包括用户对数据库中的表、视图、列或存储过程等对象的操作权限(查询、插入、更新、删除)

六、记录在实验过程中遇到的问题、解决办法及心得体会。

遇到的问题:

删除创建的角色role_151160117时显示有表对其有依赖不能删除,如图所示:

解决办法:

回收role对employee表的其它权限:

Revokeupdate,insert,delete

Ontableemployee_1511630117

Fromrole_151163017;

再执行droprolerole_1511630117;即可删除角色role_1511630117

心得体会:

通过这次试验熟练了数据库用户的添加、用户权限的分配与回收、角色的创建与管理。

在过程中遇到的较重要的问题就是回收角色时没有注意权限的问题,以后试验时会更加关注于细节。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 历史学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1