1、Oracle用户新增
create user lisi identified by lisi;
注:create user是创建数据库用户,后面跟用户名称,identified by是设置用户密码
2、把“连接”数据库权限授给新增用户lisi
grant connect to lisi;
注:grant:Oracle数据库授权的关键字
connect:Oracle数据库的一个默认角色,只有连接上数据库的权限
3、把scott用户的表授权给lisi用户
grant select on emp to lisi;
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 用户名;
4、回收用户权限
revoke select on emp from lisi;
5、用户密码修改
用lisi账号登录
alter user lisi identified by 密码;
6、用户删除
drop user 用户名;
或者drop user 用户名 cascade;(这将会删除与用户相关联的表)
7、数据库的权限和角色
①查看数据库用户有哪些权限
select * from session_privs;
注:session_privs是Oracle数据库的字典表,字典表其实就是Oracle的内部表(不用创建就已经存在了)。这个表可以看到很多权限,如创建表等。
②查看数据库用户本身拥有的角色
select * from user_role_privs;
③查看connect角色有哪些权限(DBA才能执行)
select * from dba_sys_privs where grantee='CONNECT';
注:数据库的权限、角色很多,由于精力有限,只需记住3个角色就行,即CONNECT、RESOURCE、DBA角色
给开发人员创建数据库时,应同时授权connect、resource两个角色给他
CONNECT,RESOURCE,DBA是ORACLE系统的三个内置角色,角色权限如下:
CONNECT:拥有Connect权限的用户只可以登录ORACLE,不可以创建实体,不可以创建数据库结构。
RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
DBA:拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
一般来说,对于普通用户,授予CONNECT, RESOURCE权限。 对于管理员用户,则授予CONNECT,RESOURCE, DBA权限。
授予角色的语法:
1
|
grant
<object/system privilege>
to
<role
name
>;
|
查看所有角色具有的权限个数:
1
|
select
role,
count
(*)
from
role_sys_privs
group
by
role;
|
查看某个角色(如RESOURCE)具有的权限:
1
|
select
grantee,privilege
from
dba_sys_privs
where
grantee=
'RESOURCE'
order
by
privilege;
|