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

上传人:jiups****uk12 文档编号:90665978 上传时间:2019-06-14 格式:DOCX 页数:25 大小:1.16MB
返回 下载 相关 举报
掌握创建数据库用户的方法。掌握用户权限的分配与回收。_第1页
第1页 / 共25页
掌握创建数据库用户的方法。掌握用户权限的分配与回收。_第2页
第2页 / 共25页
掌握创建数据库用户的方法。掌握用户权限的分配与回收。_第3页
第3页 / 共25页
掌握创建数据库用户的方法。掌握用户权限的分配与回收。_第4页
第4页 / 共25页
掌握创建数据库用户的方法。掌握用户权限的分配与回收。_第5页
第5页 / 共25页
点击查看更多>>
资源描述

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

1、数据库系统原理实验报告一、实验目的 1. 理解数据库的安全机制。 2. 掌握创建数据库用户的方法。 3. 掌握用户权限的分配与回收。 4. 掌握使用角色实现数据库安全性的方法。二、实验内容 1、数据库用户的添加 2、用户权限的分配与回收 3、角色的创建与管理 说明:PostgreSQL 权限分为两部分,一部分是“系统权限”或者数据库用户的属性;一部分为数据库对象上的操作权限。PostgreSQL 中用户都以角色的方式进行管理,角色都以“组角色”的方式进行管理。用户和角色的区别是角色没有 login 权限。 三、实验步骤 1.创建之前实验中使用的数据表(Student, Course, SC)或

2、者(Employee、Salary, Department)。 代码:CREATE TABLE Employee_1511630117( EmployeeID CHAR(6) NOT NULL PRIMARY KEY, Name CHAR(10) NOT NULL, Birthday Date NOT NULL, Sex Bit(1)NOT NULL, Address CHAR(20) , Zip CHAR(6) , PhoneNumber CHAR(12) , EmailAddress CHAR(30) , DepartmentID CHAR(3)NOT NULL, FOREIGN KEY(

3、DepartmentID ) REFERENCES departments_1511630117(DepartmentID) )CREATE TABLE Departments_1511630117( DepartmentID CHAR(3) NOT NULL PRIMARY KEY, DepartmentName CHAR(20)NOT NULL, Note CHAR(16) )CREATE TABLE Salary_1511630117(EmployeeID Char(6) NOT NULL,FOREIGN KEY(EmployeeID)REFERENCES Employee_151163

4、0117(EmployeeID),Income Float(8) NOT NULL,OutCome Float(8) NOT NULL)2. 创建新用户 create user user_1511630117 password xbs5417; (a) 查看对象浏览器中“登录角色”里面会出现刚刚创建的新用户(需要刷新)。 (b)点击刚刚创建的用户,查看左侧窗口中出现的用户的属性,注意该用户是否具有登录权限。3. 创建角色 create role role_1511630117; (a) 查看对象浏览器中“组角色”里面会出现刚刚创建的角色(需要刷新)。 (b)点击刚刚创建的用户,查看左侧窗口中出

5、现的角色的属性,注意该角色是否具有登录权限。4. 使用新创建的用户名和密码连接数据库,新建一个连接(新命名)。在下面的窗口输入相关的信息。 登录之后,输入一个查询语句,查询任意一个表中的信息。查看执行的结果,并分析原因。select departmentid,name,birthday,sex,address,zip,PhoneNumber,EmailAddress,DepartmentIDfrom employee_1511630117;原因:图中以显示,权限不够5. 使用默认的 postgres 用户的连接(原有的那个),重新连接数据库。四、实验任务 1. 把查询 employee表的权限

6、授给新用户”user_1511630117”。 grant select on employee_1511630117to user_1511630117;2. 把表的全部权限授予新用户”user_1511630117”。grant all privilegeson departments_1511630117to user_1511630117; 3. 像上面的步骤 4 一样,利用新用户连接数据库,并向 employee_1511630117表插入一条数据。如何处理? insert into employee_1511630117(employeeid,name,birthday,sex,a

7、ddress,zip,phonenumber,emailaddress,departmentid)values(1001,许秉圣,19961204,0,天津,475001,3880378,,1);如何处理:给予employee_1511630117插入权限即可Grant insertOn employee_1511630117To user_1511630117;授予权限后再次插入,显示成功。4. 利用默认账户连接数据库,再创建两个新的用户,”user_1511630117_2”, “user_1511630117_3” create user user_1511630117_2 passwo

8、rd xbs5417;create user user_1511630117_3 password xbs5417; 5. 把查询 Employee 表和修改employeeid的权限授给用户”user_1511630117_2” grant select,updateon employee_1511630117to user_1511630117_2;6. 把对表Salary_1511630117的查询权限授予所有用户 GRANT SELECT ON TABLE Salary_1511630117TO Public;7. 把对表 Salary_1511630117 的 INSERT 权限授予

9、用户”user_1511630117”,并允许他再将此权限授予其他用户。 GRANT INSERT ON Salary_1511630117TO user_1511630117WITH GRANT OPTION;8. 把用户”user_1511630117_2”修改employeeid权限收回,利用”user_1511630117_2”连接数据库;验证更新employeeid的操作是否能够进行。 收回权限:revoke all on TABLE employee_1511630117from user_1511630117_2;在user_1511630117_2上更新employeeidup

10、date employee_1511630117 set employeeid=2001 where employeeid=1001;因为权限已经收回,所以显示错误 9. 收回所有用户对表Salary_1511630117的查询权限,利用”user_1511630117_2”连接数据库验证查询操作是否能够进行。 回收权限:revoke all on TABLE Salary_1511630117from public;利用”user_1511630117_2”连接数据库验证查询操作是否能够进行:select employeeid,name,birthday,sex,address,zip,Ph

11、oneNumber,EmailAddress,DepartmentIDfrom employee_1511630117;因为权限已经收回,所以显示错误 10. 收回新创建的用户的所有权限。 revoke all on TABLE employee_1511630117,departments_1511630117,salary_1511630117from public;11. 创建角色 role_1511630117 create role role_151163011712. 将Employee_1511630117表的 SELECT、UPDATE、INSERT 权限授予新创建的角色”ro

12、le_1511630117”。 grant select,update,inserton employee_1511630117to role_1511630117;13. 将新建的角色 role_1511630117授予用户”user_1511630117”,并进行验证是否拥有相应的权限 grant role_1511630117to user_1511630117;验证是否拥有相应的权限 查询:select employeeid,name,birthday,sex,address,zip,PhoneNumber,EmailAddress,DepartmentIDfrom employee_

13、1511630117;更新:update employee_1511630117 set zip=475002 where zip=475001插入:insert into employee_1511630117(employeeid,name,birthday,sex,address,zip,phonenumber,emailaddress,departmentid)values(1002,许秉圣,19961204,0,天津,475003,3880355,,1);14. 将新建的角色 role_1511630117授予用户”user_1511630117_2”和”user_151163011

14、7_3” grant role_1511630117to user_1511630117_2;grant role_1511630117to user_1511630117_3;15. 从 “user_1511630117_3” 中收回角色 “role_1511630117” 拥有的三个权限。 Revoke role_1511630117from user_1511630117_3;16.为角色”role_1511630117”增加employee_1511630117表的 DELETE 权限。 grant deleteon employee_1511630117to role_1511630

15、11717.从角色”role_1511630117”收回 employee_1511630117表的 select 权限。 revoke selecton TABLE employee_1511630117from role_1511630117;18. 删除创建的角色role_151160117。 drop role role_1511630117;最开始删除不了,因为employee_1511630117对其有依赖,解决办法在后遇到的问题详述。19. 删除创建的用户。 drop user user_1511630117_3;5、 思考数据库中对象的权限类型有哪些? 决定用户对数据库对象所执行的操作,包括用户对数据库中的表、视图、列

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号