Kingbase数据库实验三 数据库安全配置及数据库的备份和恢复
一、实验目的
- 能够创建数据库登录用户。
- 能够设定数据库登录用户的数据库使用权限。
- 能够使用新创建的用户登录数据库系统。熟悉并掌握如何使用通过SQL对数据进行安全性控制(授权和权力回收)。
- 能完成数据库的逻辑备份。
- 能够从已经备份的文件中还原数据库。
二、实验内容及源代码
注:仅针对使用人大金仓KingbaseES数据库的用户
1. 使用“数据库对象管理工具”,以SYSTEM登录,建立用户U1、U2、U3、U4、U5、U6、U7,密码均为****1234!;查看创建的用户;把查询student表的权限授给用户U1。
(查看创建的用户 select * from sys_user WHERE USENAME LIKE 'U_' ORDER BY USENAME;)
CREATE USER U1 WITH PASSWORD '****1234!';
CREATE USER U2 WITH PASSWORD '****1234!';
CREATE USER U3 WITH PASSWORD '****1234!';
CREATE USER U4 WITH PASSWORD '****1234!';
CREATE USER U5 WITH PASSWORD '****1234!';
CREATE USER U6 WITH PASSWORD '****1234!';
CREATE USER U7 WITH PASSWORD '****1234!';
SELECT * FROM sys_user WHERE USENAME LIKE 'U_' ORDER BY USENAME;
2. 以U1登录,对表Student、表SC进行任意查询、插入和删除操作。
SELECT * FROM "S-C"."STUDENT";
INSERT INTO "S-C".student(sno,sname,ssex,sage,sdept)
VALUES('200215134','赵欣','女','22','ACCE');
SELECT sno,sname,sdept FROM "S-C".student;
3. 以SYSTEM登录,将查询student表和course表的权全部操作限授给用户U2和U3。
此处用鼠标操作即可
4.分别以U2,U3登录,进行任意查询。
用U2登录:
INSERT INTO "S-C".student(sno,sname,ssex,sage,sdept)
VALUES('200215176','王富贵','男','25','CS');
SELECT sno,sname,sdept FROM "S-C".student;
用U3登录:
SELECT * FROM "S-C".student;
5. 将对表SC的权限授给所有用户,以U3登录,进行任意查询。
SELECT * FROM "S-C".sc;
6.以SYSTEM登录,将对表SC的查询权限授予所有用户。以U3登录,进行任意查询。
SELECT sno,grade FROM "S-C".sc;
7.将查询表student和修改学生学号的权限授给用户U4。以SYSTEM登录,对student表插入一条新记录。以U4登录,修改插入的学号。
INSERT INTO "S-C".student(sno,sname,ssex,sage,sdept)
VALUES('200215188','言蹊','女','19','ACCA');
SELECT * FROM "S-C".student;
UPDATE "S-C".student
SET sno='200215198'
WHERE sno='200215188';
SELECT * FROM "S-C".student;
8. 以SYSTEM登录,把对表SC的INSERT权限授予U5用户,并允许将此权限再授予其他用户。以U5登录,进行任意查询。
UPDATE "S-C".student
SET sno='200215256'
WHERE sno='200215176';
SELECT * FROM "S-C".student;
9. 以U5登录,将对表SC的INSERT权限授予U6用户,并允许将此权限在授予其他用户。以U6登录,进行任意查询。
INSERT INTO "S-C".sc(sno,cno,grade)
VALUES('200215198','3','99');
SELECT * FROM "S-C".sc;
10.以U6登录,将对表SC的INSERT权限授予U7用户。以U7登录,把对表SC的INSERT权限授予U2用户。
11. 以SYSTEM登录,把用户U4修改学生学号的权利收回。以U4登录,对学生学号进行修改。
12.以SYSTEM登录,收回所有用户对表SC的查询权限。以U1登录,对表SC进行任意查询。
13.以SYSTEM登录,将用户U5对SC表的INSERT权限收回。以U5登录,对表SC进行INSERT权限测试。
(10-13)鼠标操作即可,无需代码
14.以SYSTEM登录,创建一个角色R1,使用grant语句,使角色R1拥有Student表的SELECT、UPLECT、INSERT权限。将角色R1授予U7。以U7登录,对Student表进行查询。以SYSTEM的登录,通过R1收回U7的权限。以U7登录,对Student表进行查询。
CREATE ROLE R1;
GRANT SELECT,UPDATE,INSERT
ON TABLE "S-C".student
TO R1;
GRANT R1 TO U7;
SELECT * FROM "S-C".student;
15.以SYSTEM登录,增加角色R1对Student表的DELETE权限。 将R1授予U7,使其具有角色R1所包含的全部权限。以U7登录,进行对Student表的DELETE权限测试。
DELETE FROM "S-C".student
WHERE sno='200315244';
SELECT * FROM "S-C".student;
16. 以SYSTEM登录,取消角色R1对Student表的select权限。 以U7登录,对Student表的select权限测试。
SELECT * FROM "S-C".student;
17. 删除角色R1。
REVOKE SELECT,UPDATE,INSERT
ON TABLE "S-C".student
FROM R1;
DROP ROLE IF EXISTS R1;
18.将已经建立的数据库StudentTest备份到D:盘的自己创建的文件夹中。
无需代码,鼠标操作即可。
19.删除已经创建的数据库StudentTest。
DROP TABLE "S-C".studenttest;
20.使用备份文件还原数据库。观察还原后的数据库中是否具有原有的表。
无需代码,鼠标操作即可。