掌握创建数据库用户的方法掌握用户权限的分配与回收docxWord文件下载.docx
《掌握创建数据库用户的方法掌握用户权限的分配与回收docxWord文件下载.docx》由会员分享,可在线阅读,更多相关《掌握创建数据库用户的方法掌握用户权限的分配与回收docxWord文件下载.docx(23页珍藏版)》请在冰豆网上搜索。
![掌握创建数据库用户的方法掌握用户权限的分配与回收docxWord文件下载.docx](https://file1.bdocx.com/fileroot1/2022-11/20/56490522-b2ba-4b31-a30a-c7b8a1be0978/56490522-b2ba-4b31-a30a-c7b8a1be09781.gif)
用户和角色的区别是角色没有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)REFERENCESdepartments_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.使用新创建的用户名和密码连接数据库,新建一个连接(新命名)。
在下面的
窗口输入相关的信息。
登录之后,输入一个查询语句,查询任意一个表中的信息。
查看执行的结果,并分析原
因。
selectdepartmentid,name,birthday,sex,address,zip,PhoneNumber,EmailAddress,DepartmentID
fromemployee_1511630117;
原因:
图中以显示,权限不够
5.使用默认的postgres用户的连接(原有的那个),重新连接数据库。
四、实验任务
1.把查询employee表的权限授给新用户”user_1511630117”。
grantselect
onemployee_1511630117
touser_1511630117;
2.把表的全部权限授予新用户”user_1511630117”。
grantallprivileges
ondepartments_1511630117
3.像上面的步骤4一样,利用新用户连接数据库,并向employee_1511630117表插入一条数据。
如何处理?
insertintoemployee_1511630117(employeeid,name,birthday,sex,address,zip,phonenumber,emailaddress,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'
createuseruser_1511630117_3password'
5.把查询Employee表和修改employeeid的权限授给用户”user_1511630117_2”
grantselect,update
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上更新employeeid
updateemployee_1511630117
setemployeeid='
2001'
whereemployeeid='
因为权限已经收回,所以显示错误
9.收回所有用户对表Salary_1511630117的查询权限,利用”user_1511630117_2”连接数据库验证查询操作是否能够进行。
回收权限:
onTABLESalary_1511630117
frompublic;
利用”user_1511630117_2”连接数据库验证查询操作是否能够进行:
selectemployeeid,name,birthday,sex,address,zip,PhoneNumber,EmailAddress,DepartmentID
10.收回新创建的用户的所有权限。
revokeall
onTABLEemployee_1511630117,departments_1511630117,salary_1511630117
11.创建角色role_1511630117
createrolerole_1511630117
12.将Employee_1511630117表的SELECT、UPDATE、INSERT权限授予新创建的角色”role_1511630117”。
grantselect,update,insert
torole_1511630117;
13.将新建的角色role_1511630117授予用户”user_1511630117”,并进行验证是否拥有相应的权限
grantrole_1511630117
验证是否拥有相应的权限
查询:
更新:
setzip=475002
wherezip='
插入:
1002'
475003'
3880355'
14.将新建的角色role_1511630117授予用户”user_1511630117_2”和”user_1511630117_3”
touser_1511630117_3;
15.从“user_1511630117_3”中收回角色“role_1511630117”拥有的三个权限。
Revokerole_1511630117
fromuser_1511630117_3;
16.为角色”role_1511630117”增加employee_1511630117表的DELETE权限。
grantdelete
torole_1511630117
17.从角色”role_1511630117”收回employee_1511630117表的select权限。
revokeselect
fromrole_1511630117;
18.删除创建的角色role_151160117。
droprolerole_1511630117;
最开始删除不了,因为employee_1511630117对其有依赖,解决办法在后遇到的问题详述。
19.删除创建的用户。
dropuseruser_1511630117_3;
5、思考数据库中对象的权限类型有哪些?
决定用