用户管理
创建一个用户从无到有,再分配权限,在到堕落以及删除的过程,如果要想进行用户的创建,那么必须有管理员的权限,本次就直接使用sys用户。使用sys登录
1、sys登陆
CONN sys/change_on_install AS SYSDBA ; |
2、创建一个新的用户,名字为dog,密码为:wangwang
create user dog identified by wangwang; |
那么现在用户已经创建完成了,所以能不能使用此用户登录呢?那么此时出现了如下的错误提示
conn dog/wangwang
ORA-01045: user DOG lacks CREATE SESSION privilege; logon denied
每一个新的用户本身不具备任何的权限,而在Oracle数据库里面,如果用户要想登录,则必须具有创建SESSION的权限,如果要分配权限则可以使用如下的语法:
GRANT 权限1,权限2 ,... TO 用户名;
范例:将创建SESSION的权限赋予dog
grant create session to dog; |
登陆到:dog用户
conn dog/wangwang
既然已经使用了dog用户登录成功,那么下面创建序列和表?
create sequence mysql; create table mytab( name varchar2(20) ); |
这个时候发现出现了以下错误信息:“ORA-01031: 权限不足
实际上进来后发现依然要权限,一步一个脚印,需要创建序列的权限、需要创建表的权限,还有可能需要一堆其他的权限。这样做太麻烦了,所以在Oracle里面提供有一种角色的概念。所谓的角色指的是包含有若干个权限,那么在Oracle里面主要使用两个角色:CONNECT(了解)、RESOURCE(表以及表空间)。
范例:将两个角色授予dog用户,登陆sys用户下在执行下面语法
grant connect,resource to dog; |
现在可以创建表和序列了↑
范例:修改用户密码,由于用户并不多,所以这种用户的维护就可以由sys进行了
alter user dog identified by miaomiao; |
此时密码已修改
范例:让用户密码过期
alter user dog password expire; |
范例:锁定用户
alter user dog account lock; |
范例:用户解锁
alter user dog account unlock; |
除了以上给出的一些系统权限之外,还可以使用一些对象权限。
可以针对于一个对象下的数据表进行访问的定义:有四种权限:INSERT、UPDATE、DELETE、SELECT。
范例:下面将scott.emp表的SELECT、INSERT权限授予dog用户
grant select,insert on scott.emp to dog; |
授权后dog用户就可以查看和更新scott用户的数据
范例:回收scott权限
revoke select,insert on scott.emp from dog; |
收回权限后将无法查看和修改scott用户的内容
范例:回收其它所授予的权限
revoke connect,resource,create session from dog; |
删除dog
drop user dog cascade; |