一. 用户管理
--创建用户
CREATE USER 用户名 IDENTIFIED BY PASSWORD [ACCOUNT LOCK|UNLOCK];
--删除用户
DROP USER 用户名;
--给用户授权
GRANT CONNECT,RESOURCE TO 用户名; --- 直接将CONNECT角色,RESOURCE角色授予用户。
--- CONNECT角色:连接数据库。RESOURCE:正常使用数据库
--收回用户权限
REVOKE 角色|权限 FROM 用户(角色)
--给用户SCOTT解锁
ALTER USER SCOTT ACCOUNT UNLOCK;
--修改用户的密码
ALTER USER 用户名 IDENTIFIED BY 新密码;
--给用户加锁/解锁
ALTER USER 用户名 ACCOUNT LOCK/UNLOCK;
-------------------------------------------
二.系统权限
系统权限 作用
CREATE SESSION CREATE SESSION
CREATE TABLE 建表
CREATE TABLESPACE 建立表空间
CREATE VIEW 建立视图
CREATE SEQUENCE 建立序列
CREATE USER 建立用户
-------------------------------------------
- 角色
角色是一组相关权限的命名集合,使用角色最主要的目的是简化权限管理
CONNECT自动建立,包含以下权限:ALTER SESSION、CREATE CLUSTER、CREATE DATABASELINK、CREATE SEQUENCE、CREATE SESSION、CREATE SYNONYM、CREATE TABLE、CREATEVIEW。
RESOURCE自动建立,包含以下权限:CREATE CLUSTER、CREATE PROCEDURE、CREATE SEQUENCE、CREATE TABLE、CREATE TRIGGR
-------------------------------------------
四.Oracle用户角色:
每个Oracle用户都有一个名字和口令,并拥有一些由其创建的表、视图和其他资源。
Oracle角色(role)就是一组权限(privilege)(或者是每个用户根据其状态和条件所需的访问类型)。用户可以给角色授予或赋予指定的权限,然后将角色赋给相应的用户。一个用户也可以直接给其他用户授权。
数据库系统权限(Database System Privilege)允许用户执行特定的命令集。例如,CREATE TABLE权限允许用户创建表,GRANT ANY PRIVILEGE权限允许用户授予任何系统权限。
数据库对象权限(Database Object Privilege)使得用户能够对各个对象进行某些操作。例如DELETE权限允许用户删除表或视图的行,SELECT权限允许用户通过select从表、视图、序列(sequences)或快照 (snapshots)中查询信息。
------------------------------------------
五.SYS SYSTEM 用户的区别
sys是Oracle数据库中权限最高的帐号,具有create database的权限,
而system没有这个权限,sys的角色是sysdba,system的角色是sysoper。
六. 查看权限和角色
USER_*: 有关用户所拥有的对象信息,即用户自己创建的对象信息
ALL_*: 有关用户可以访问的对象的信息,即用户自己创建的对象的信息加上其他用户创建的对象但该用户有权访问的信息
DBA_*:有关整个数据库中对象的信息
(这里的*可以为TABLES, INDEXES, OBJECTS, USERS等
-------常用系统命令
SELECT * FROM V$VERSION; --当前Oracle版本
--DBA权限所有用户信息
SELECT * FROM DBA_USERS
SELECT * FROM ALL_TABLES; --获取所有用户的表对象
SELECT * FROM USER_TABLES; --获取当前用户的表对象
SELECT * FROM USER_SOURCE WHERE TEXT LIKE '%EMP%' --数据库用户的所有资源对象信息
SELECT * FROM ALL_TAB_COLUMNS WHERE COLUMN_NAME LIKE '%EMPNO%' --所有系统表列名
user_constraints --用户的对象约束信息
SELECT * FROM user_objects WHERE OBJECT_NAME --用户对象信息
SELECT * FROM user_sys_privs --当前用户的系统权限信息
SELECT * FROM user_tab_privs --当前用户的对象权限信息
select * from user_role_privs --查看scott用户自己拥有什么角色
select * from session_privs --查看scott用户自己具有什么的权限
select * from user_sys_privs ---查看scott用户具有什么的系统权限
参考:Oracle 用户及角色 介绍_小宝老豆的专栏-CSDN博客