用户权限

第9章 用户、角色、权限

1. 创建新用户 RXZX,密码 RXZX,使用的默认表空间是新建立的 CMSTS,临时表空间使用系统已经建立好的 TEMP。在 RXZX 用户下做《存储过程作业.doc》作业。

1
2
3
4
5
6
7
8
9
10
-- 创建表空间
CREATE TABLESPACE CMSTS DATAFILE 'D:/TEST.DBF' SIZE 10M;

-- 创建用户
CREATE USER RXZX IDENTIFIED BY RXZX
DEFAULT TABLESPACE CMSTS
TEMPORARY TABLESPACE TEMP;

-- 查询表空间信息
SELECT * FROM DBA_DATA_FILES;

2. 创建用户 TEST1_自己姓名拼音TEST2_自己姓名拼音 两个用户。

1
2
3
4
5
6
7
8
9
10
-- 创建用户
CREATE USER TEST1 IDENTIFIED BY TEST1;
CREATE USER TEST2 IDENTIFIED BY TEST2;

-- 授予登录权限
GRANT CREATE SESSION TO TEST1;
GRANT CREATE SESSION TO TEST2;

-- 授予 TEST1 用户创建表的权限
GRANT CREATE TABLE TO TEST1;

使用第 1 个用户创建表 CUSTOMER,语句如下:

1
2
3
4
5
6
7
8
9
10
11
12
-- 切换到 TEST1 用户
CONNECT TEST1/TEST1;

-- 创建表
CREATE TABLE CUSTOMER (
ID INT,
NAME VARCHAR(20)
);

-- 插入数据
INSERT INTO CUSTOMER(ID, NAME) VALUES(1, '王小明');
INSERT INTO CUSTOMER(ID, NAME) VALUES(2, '张大明');

然后使用第 2 个用户登录系统,并做如下操作:

(1) 使用 SQL 查询一下 CUSTOMER 表:

1
2
3
4
5
6
7
8
-- 切换到 TEST2 用户
CONNECT TEST2/TEST2;

-- 授予 TEST2 用户查询任意表的权限
GRANT SELECT ANY TABLE TO TEST2;

-- 查询 TEST1 用户的 CUSTOMER 表
SELECT * FROM TEST1.CUSTOMER;

(2) 使用 SQL 再插入一条数据:

1
2
3
4
5
-- 授予 TEST2 用户插入任意表的权限
GRANT INSERT ANY TABLE TO TEST2;

-- 插入数据
INSERT INTO TEST1.CUSTOMER(ID, NAME) VALUES(3, '付海');

(3) 使用 SQL 修改数据“王小明”,修改成“王晓明”。

1
2
3
4
5
-- 授予 TEST2 用户更新任意表的权限
GRANT UPDATE ANY TABLE TO TEST2;

-- 更新数据
UPDATE TEST1.CUSTOMER SET NAME = '王晓明' WHERE NAME = '王小明';

(4) 使用 SQL 删除所有数据。

1
2
3
4
5
-- 授予 TEST2 用户删除任意表的权限
GRANT DELETE ANY TABLE TO TEST2;

-- 删除所有数据
DELETE FROM TEST1.CUSTOMER;

(5) 使用 SQL 把此表删除掉。

1
2
3
4
5
-- 授予 TEST2 用户 DBA 权限
GRANT DBA TO TEST2;

-- 删除表
DROP TABLE TEST1.CUSTOMER;

用户权限
https://blog.pangcy.cn/2018/10/09/数据库相关/Oracle/SQL 练习/用户权限/
作者
子洋
发布于
2018年10月9日
许可协议