1、用户和角色的区别是角色没有 login 权限。三、实验步骤 1.创建之前实验中使用的数据表(Student, Course, SC)或者(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) ,
2、EmailAddress CHAR(30) , DepartmentID CHAR(3)NOT NULL, FOREIGN KEY(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_1511630117EmployeeID Char
3、(6) NOT NULL,FOREIGN KEY(EmployeeID)REFERENCES Employee_1511630117(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
4、;(a) 查看对象浏览器中“组角色”里面会出现刚刚创建的角色(需要刷新)。(b)点击刚刚创建的用户,查看左侧窗口中出现的角色的属性,注意该角色是否具有登录4. 使用新创建的用户名和密码连接数据库,新建一个连接(新命名)。在下面的窗口输入相关的信息。登录之后,输入一个查询语句,查询任意一个表中的信息。查看执行的结果,并分析原因。select departmentid,name,birthday,sex,address,zip,PhoneNumber,EmailAddress,DepartmentIDfrom employee_1511630117;原因:图中以显示,权限不够5. 使用默认的 po
5、stgres 用户的连接(原有的那个),重新连接数据库。四、实验任务 1. 把查询 employee表的权限授给新用户”user_1511630117”。 grant select on employee_1511630117to user_1511630117;2. 把表的全部权限授予新用户”user_1511630117”。grant all privilegeson departments_15116301173. 像上面的步骤 4 一样,利用新用户连接数据库,并向 employee_1511630117表插入一条数据。如何处理?insert into employee_15116301
6、17(employeeid,name,birthday,sex,address,zip,phonenumber,emailaddress,departmentid)values(1001,许秉圣199612040天津4750013880378xbs1);如何处理:给予employee_1511630117插入权限即可Grant insertOn employee_1511630117To user_1511630117;授予权限后再次插入,显示成功。4. 利用默认账户连接数据库,再创建两个新的用户,”user_1511630117_2”, “user_1511630117_3” create
7、user user_1511630117_2 password create user user_1511630117_3 password 5. 把查询 Employee 表和修改employeeid的权限授给用户”user_1511630117_2” grant select,updateto user_1511630117_2;6. 把对表Salary_1511630117的查询权限授予所有用户 GRANT SELECT ON TABLE Salary_1511630117TO Public;7. 把对表 Salary_1511630117 的 INSERT 权限授予用户”user_15
8、11630117”,并允许他再将此权限授予其他用户。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上更新employeeidupdate employe
9、e_1511630117 set employeeid=2001 where employeeid=因为权限已经收回,所以显示错误 9. 收回所有用户对表Salary_1511630117的查询权限,利用”user_1511630117_2”连接数据库验证查询操作是否能够进行。回收权限:on TABLE Salary_1511630117from public;利用”user_1511630117_2”连接数据库验证查询操作是否能够进行:select employeeid,name,birthday,sex,address,zip,PhoneNumber,EmailAddress,Depart
10、mentID10. 收回新创建的用户的所有权限。 revoke all on TABLE employee_1511630117,departments_1511630117,salary_151163011711. 创建角色 role_1511630117 create role role_151163011712. 将Employee_1511630117表的 SELECT、UPDATE、INSERT 权限授予新创建的角色”role_1511630117”。grant select,update,insertto role_1511630117;13. 将新建的角色 role_151163
11、0117授予用户”user_1511630117”,并进行验证是否拥有相应的权限 grant role_1511630117验证是否拥有相应的权限 查询:更新: set zip=475002 where zip=插入:1002475003388035514. 将新建的角色 role_1511630117授予用户”user_1511630117_2”和”user_1511630117_3” to user_1511630117_3;15. 从 “user_1511630117_3” 中收回角色 “role_1511630117” 拥有的三个权限。Revoke role_1511630117fro
12、m user_1511630117_3;16.为角色”role_1511630117”增加employee_1511630117表的 DELETE 权限。grant deleteto role_151163011717.从角色”role_1511630117”收回 employee_1511630117表的 select 权限。revoke selectfrom role_1511630117;18. 删除创建的角色role_151160117。drop role role_1511630117;最开始删除不了,因为employee_1511630117对其有依赖,解决办法在后遇到的问题详述。19. 删除创建的用户。drop user user_1511630117_3;5、思考数据库中对象的权限类型有哪些?决定用
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1