一、管理表
a.查看用户定义的表
SELECT table_name
FROM user_tables ;
b.查看用户定义的各种数据库对象
SELECT DISTINCT object_type
FROM user_objects ;
c.查看用户定义的表, 视图, 同义词和序列
SELECT *
FROM user_catalog ;
二、管理用户权限
1)创建用户(CREATE USER)
- CREATE USER user-----------------创建用户名
- IDENTIFIED BY password;--------创建用户密码
2)授权管理
一般创建用户了以后会赋予一些授权管理
- CREATE SESSION----(创建会话)连接数据库的权限
- CREATE TABLE------(创建表)
- CREATE SEQUENCE—(创建序列)
- CREATE VIEW-------(创建视图)
- CREATE PROCEDURE–(创建过程)
- GRANT ···(设置权限)
- TO···(用户)
例如:
GRANT CREATE SESSION,CREATE TABLE,CREATE SEQUENCE,
CREATE VIEW,CREATE PROCEDURE
TO user
3)分配用户表空间
当用户拥有权限以后,还需要分配相对应的表空间,这样才可以开辟存储空间用于创建表
ALTER USER atguigu01 QUOTA UNLIMITED(对指定表空间不做限额)
ON users
4)创建角色并且赋予权限
a.创建角色
CREATE ROLE role;
b.角色赋予权限
GRANT CREATE TABLE
TO role;
c.角色赋予用户
GRANT role TO USER
5)修改密码
DBA 可以创建用户和修改密码
用户自身可以使用ALTER USER 语句来修改密码
ALTER USER scott-------用户名
IDENTIFIED BY lion;----密码
6)分配对象权限
- 不同的对象具有不同的对象权限
- 对象的拥有者拥有所有权限
- 对象的拥有者可以向外分配权限
分配权限:
GRANT object_priv|ALL(允许的权限)
ON object(表名)
TO USER(给予的用户)
当别的用户登录查询的时候需要先说明查询的是谁的表:select * from 给予权限的用户.object
7)WITH GRANT OPTION和PUBLIC关键字
WITH GRANT OPTION 使用户同样具有分配权限的权利(也就是A给B查询权限,B就可以给其他人查询权限)
GRANT object_priv
ON object
TO USER
WITH GRANT OPTION;
向数据库中所有用户分配权限(也就是A把所给予的权限分配给所有用户)
GRANT object_priv
ON object
TO PUBLIC;
8)查询权限分配情况
- ROLE_SYS_PRIVS-------角色拥有的系统权限
- ROLE_TAB_PRIVS-------角色拥有的对象权限
- USER_ROLE_PRIVS------用户拥有的角色
- USER_TAB_PRIVS_MADE–用户分配的关于表对象权限
- USER_TAB_PRIVS_RECD–用户拥有的关于表对象权限
- USER_COL_PRIVS_MADE–用户分配的关于列的对象权限
- USER_COL_PRIVS_RECD–用户拥有的关于列的对象权限
- USER_SYS_PRIVS-------用户拥有的系统权限
例如:查询用户拥有的系统权限
Select * from USER_SYS_PRIVS
9)收回对象权限
- 使用 REVOKE 语句收回权限
- 使用 WITH GRANT OPTION 子句所分配的权限同样被收回(即为7)分配出去的权限也会收回)
REVOKE privilege|ALL(赋予的权限)
ON object(赋予权限的表名)
FROM user(赋予权限的用户)