oracle用户与权限管理

    创建用户

    CREATE USER 用户名 IDENTIFIED BY 密码

    DEFAULT TABLESPACE 表空间

    TEMPORARY TABLESPACE 临时表空间

    QUOTA 空间配额大小 ON 表空间

    PASSWORD EXPIRE

    ACCOUNT LOCK | UNLOCK

    除了用户名和密码,其它可选

    建议一个用户对应一个单独的表空间

    修改用户

    -- DBA指定用户名和密码

    ALTER USER 用户名 IDENTIFIED BY 新密码;

    -- 当前用户修改自己的密码

    PASSWORD 用户名;

    -- 锁定用户

    ALTER USER 用户名 ACCOUNT LOCK;

    -- 修改用户默认表空间、临时表空间、配额无限制

    ALTER USER 用户名 DEFAULT TABLESPACE 新表空间名 TEMPORARY TABLESPACE 新临时表空间名 QUOTA UNLIMITED ON 新表空间名;

    删除用户

    DROP USER 用户名;

    -- 级联删除相关数据对象

    DROP USER 用户名 CASCADE;

    查询用户

    -- 查看有哪些用户及其默认表空间

    select username,default_tablespace from dba_users;

    -- 查看表空间有哪些用户

    select distinct owner,tablespace_name from dba_segments;

    -- 查询表空间对应的数据文件,用户和表空间对应关系

    select tablespace_name,file_id,bytes/1024/1024,file_name from dba_data_files order by file_id;

    授权

    -- WITH ADMIN OPTION使用户可以再授权

    grant 权限1,权限2, ... TO 用户1,用户2, ... [WITH ADMIN OPTION];

    -- 指定对象

    GRANT 对象权限1,对象权限2, ... ON 对象 TO 用户1,用户2, ... [WITH ADMIN OPTION];

    撤销授权

    REVOKE 权限1,权限2, ... FROM 用户1, 用户2, ...

    -- 指定对象

    REVOKE 对象权限1,对象权限2, ... ON 对象 FROM 用户1,用户2, ... [WITH ADMIN OPTION];

    -- 收回所有权限

    REVOKE ALL ON 对象 FROM 用户名;

    查看授权

    -- 查询用户的系统权限

    select username,privilege,admin_option from user_sys_privs;

    -- 查询用户具有的对象权限

    select grantee,privilege,grantor,table_name,grantable from dba_tab_privs where grantee='user1';

    角色

    可以将角色简单理解为用户组。常用角色有connect、resource、dba,这是系统自带的角色。

    对于新创建的用户,可以授予connect和resource以基本权限。

    创建角色

    craete role role_name;

    删除角色

    drop role role_name;

    为角色增删权限

    grant 权限 to 角色名;

    revoke 权限 from 角色名;

    查看角色

    -- 查看所有角色

    select role from dba_roles;

    -- 查看用户所拥有的角色和默认角色

    select granted_role,default_role from dba_role_privs where grantee='user_name';

    -- 查看指定角色拥有的系统权限

    select privilege,admin_option from role_sys_privs where role='role_name';

    常用权限

    用户和角色相关

    权限

    说明

    create user

    创建用户的权限

    create role

    创建角色的权限

    alter user

    修改用户的权限

    alter any role

    修改任意角色的权限

    drop user

    删除用户的权限

    drop any role

    删除任意角色权限

    概要文件相关

    权限

    说明

    create profile

    创建概要文件的权限

    alter profile

    修改概要文件

    drop profile

    删除概要文件

    同义词相关

    权限

    说明

    create any synonym

    为任意用户创建同义词的权限

    create synonym

    为用户创建同义词

    drop public synonym

    删除公共同义词

    drop any synonym

    删除任意同义词

    表空间相关

    权限

    说明

    create tablespace

    创建表空间

    alter tablespace

    修改xxx

    drop tablespace

    删除xxx

    unlimited tablespace

    对表空间大小不加限制的权限

    表相关

    权限

    说明

    select any table

    查询任意表的权限

    select table

    查询用户表

    update any table

    修改任意表数据

    update table

    修改用户表数据

    delete any table

    删除任意表数据

    delete table

    xxx

    create any table

    为任意用户创建表

    create table

    xxx

    drop any table

    删除任意表

    alter any table

    修改任意表

    alter table

    xxx

    索引相关

    权限

    说明

    create any index

    为任意用户创建索引

    drop any index

    xxx

    alter any index

    xxx

    会话相关

    权限

    说明

    create session

    创建会话

    alter session

    xxx

    视图相关

    权限

    说明

    create any view

    为任意用户创建视图

    create view

    xxx

    drop any view

    xxx

    select view

    xxx

    update view

    xxx

    delete any view

    xxx

    delete view

    xxx

    序列相关

    权限

    说明

    create any sequence

    为任意用户创建序列

    create sequence

    xxx

    alter sequence

    xxx

    drop any sequence

    xxx

    drop sequence

    xxx

    select any sequence

    xxx

    select sequence

    xxx

    子程序相关

    权限

    说明

    create any procedure

    为任意用户创建存储过程

    create procedure

    xxx

    create any trigger

    为任意用户创建触发器

    alter procedure

    xxx

    alter any trigger

    xxx

    execute any procedure

    执行任意存储过程

    execute procedure

    xxx

    execute function

    执行函数

    execute package

    执行包

    drop any procedure

    xxx

    drop trigger

    xxx