SQL 用户权限与对象访问学习笔记
在 Oracle 数据库中,用户权限和对象访问是数据库安全管理的重要部分。
1. 创建用户
语法:
1
| CREATE USER 用户名 IDENTIFIED BY 密码;
|
示例:
1 2
| CREATE USER li IDENTIFIED BY li;
|
2. 创建序列和表
(1)创建序列
(2)创建表
1 2
| CREATE TABLE B (id INT);
|
3. 访问其他用户的表
在 Oracle 中,用户可以通过权限访问其他用户的表。
(1)查询其他用户的表
1 2 3 4 5 6 7 8
| SELECT * FROM scott.emp;
SELECT * FROM scott.dept;
SELECT * FROM scott.salgrade;
|
(2)插入数据到其他用户的表
1 2
| INSERT INTO scott.dept VALUES (50, '教师', '北京');
|
4. 权限管理
权限分为系统权限和对象权限。
(1)系统权限
- 定义:系统权限是用户对数据库的整体操作权限(如创建表、创建用户等)。
- 查询系统权限:
1
| SELECT * FROM USER_SYS_PRIVS;
|
(2)对象权限
- 定义:对象权限是用户对特定数据库对象(如表、视图等)的操作权限(如查询、插入、更新等)。
- 查询对象权限:
1
| SELECT * FROM USER_TAB_PRIVS;
|
5. 综合示例
(1)创建用户并授予权限
1 2 3 4 5 6 7 8 9 10 11
| CREATE USER li IDENTIFIED BY li;
GRANT CONNECT TO li;
GRANT CREATE TABLE TO li;
GRANT SELECT ON scott.emp TO li;
|
(2)查询权限
1 2 3 4 5
| SELECT * FROM USER_SYS_PRIVS;
SELECT * FROM USER_TAB_PRIVS;
|
(3)访问其他用户的表
1 2 3 4 5
| SELECT * FROM scott.emp;
INSERT INTO scott.dept VALUES (60, '学生', '上海');
|
6. 总结
- 创建用户:使用
CREATE USER
语句创建用户。
- 创建序列和表:使用
CREATE SEQUENCE
和 CREATE TABLE
语句创建序列和表。
- 访问其他用户的表:通过权限访问其他用户的表。
- 权限管理:查询系统权限和对象权限。