Oracle的用户、角色以及权限相关操作

注:create user是创建数据库用户,后面跟用户名称,identified
by是设置用户密码

1、创建用户
create user KD identified by 123456;
2、授予连接数据库的权限
grant connect to KD;
3、将Scott用户的emp表授权给KD可以查询
grant select on scott.emp to KD;
grant create table to KD;
4、回收权限
revoke select on scott.emp from KD;
5、表的增删改权限授权
grant select,inset,delete,update on scott.emp to KD;
revoke select,inset,delete,update on scott.emp from KD;
6、删除用户
SQL 错误: ORA-01940: 无法删除当前连接的用户
退出已经连接得KD用户后再执行
drop user KD;
会提示:错误: ORA-01922: 必须指定 CASCADE 以删除 ‘KD’
drop user KD cascade;
7、查看当前用户所拥有的权限
select * from session_privs;
8、查看当前用户所拥有的角色
select * from user_role_privs;
9、查看角色所有的权限
select * from dba_sys_privs;
select * from dba_sys_privs where grantee=’CONNECT’;
–create session

1、Oracle用户新增复制代码 代码如下:create
user lisi identified by lisi;

10、用户解锁
alter user HR account unlock;
11、修改用户密码
alter user HR identified by 123456;

pl/sql中的问题:动态执行表不可访问,本回话的自动统计被禁止。在执行菜单里你可以禁止统计,或在v$session,v$sesstat和v$statname表里获得选择权限解决方案:复制代码 代码如下:grant select on v_$session
to 用户名;grant select on v_$sesstat to 用户名;grant select on
v_$statname to 用户名;

创建一个开发人员并授权:
create user CURRY identified by 123456;
create connet,resource to CURRY;

3、把scott用户的表授权给lisi用户复制代码
代码如下:grant select on emp to lisi;

select * from dba_sys_privs where grantee=’RESOURCE’;

注:grant:Oracle数据库授权的关键字connect:Oracle数据库的一个默认角色,只有连接上数据库的权限

/*
create trigger
create sequence
create type
create procedure
create cluster
create operator
create indextype
create table
*/

5、用户密码修改用lisi账号登录复制代码
代码如下:alter user lisi identified by 密码;

select * from dba_sys_privs where grantee=’DBA’;
–有最高权限 所有的权限都有

7、数据库的权限和角色①查看数据库用户有哪些权限复制代码 代码如下:select * from
session_privs;注:session_privs是Oracle数据库的字典表,字典表其实就是Oracle的内部表。这个表可以看到很多权限,如创建表等。