数据库安全性:
系统安全性
数据安全性
系统权限: 对于数据库的权限
对象权限: 操作数据库对象的权限
数据库管理员具有高级权限以完成管理任务,例如:
创建新用户
删除用户
删除表
备份表
用户创建之后, DBA 会赋予用户一些系统权限:
CREATE SESSION(创建会话)
CREATE TABLE(创建表)
CREATE SEQUENCE(创建序列)
CREATE VIEW(创建视图)
CREATE PROCEDURE(创建过程)
1 --DBA 使用 CREATE USER 语句创建用户
2 CREATE USER scott
3 IDENTIFIED BY tiger;
4
5 --DBA 可以赋予用户特定的权限
6 GRANT create session, create table,
7 create sequence, create view
8 TO scott;
9
10 -- 用户拥有create table权限之外,还需要分配相应的表空间才可开辟存储空间用于创建的表
11 ALTER USER scott QUOTA UNLIMITED
12 ON users
13
14 --创建角色
15 CREATE ROLE manager;
16 --为角色赋予权限
17 GRANT create table, create view
18 TO manager;
19 --将角色赋予用户
20 GRANT manager TO DEHAAN, KOCHHAR;
21
22 --DBA 可以创建用户和修改密码
23 --用户本人可以使用 ALTER USER 语句修改密码
24 ALTER USER scott
25 IDENTIFIED BY lion;
26
27 --分配对象权限
28 --分配表 EMPLOYEES 的查询权限
29 GRANT select
30 ON employees
31 TO sue, rich;
32
33 --分配表中各个列的更新权限
34 GRANT update
35 ON scott.departments
36 TO bugshi
37
38 --WITH GRANT OPTION 使用户同样具有分配权限的权利
39 GRANT select, insert
40 ON departments
41 TO scott
42 WITH GRANT OPTION;
43
44 --向数据库中所有用户分配权限
45 GRANT select
46 ON alice.departments
47 TO PUBLIC;
48
49 --查询权限分配情况
50
51 --使用 REVOKE 语句收回权限
52 --使用 WITH GRANT OPTION 子句所分配的权限同样被收回
53 REVOKE select, insert
54 ON departments
55 FROM scott;
查询权限分配情况
eg:
1 --如果用户能够登陆到数据库,至少需要哪种权限?是系统权限还是对象权限
2 --CREATE SESSION 系统权限
3
4 --创建表需要哪种权限?
5 CREATE TABLE
6
7 --将表departments的查询权限分配给用户system
8 GRANT select
9 ON departments
10 TO system
11
12 --从system处收回刚才赋予的权限。
13 REVOKE select
14 ON departments
15 FROM system
16
17 --创建角色dvp,并将如下权限赋予该角色
18 --CREATE PROCEDURE
19 --CREATE SESSION
20 --CREATE TABLE
21 --CREATE SEQUENCE
22 --CREATE VIEW
23 CREATE ROLE dvp;
24 GRANT CREATE PROCEDURE,CREATE SESSION,CREATE TABLE,CREATE SEQUENCE,CREATE VIEW
25 TO dvp;