在 oracle 中要创建一个新的用户使用 create user 语句,一般是具有 dba(数据库管理员sysdba)的权限才能使用。
问题:创建好的用户无法正常登录?
oracle 中用户建立后是无法正常登录的,只有在数据库管理员(DBA)对用户分配相应的权限后,用户才可以登录。
1)创建用户
语法结构:create user 用户名 identified by 密码 【default tablespace 表空间名】【temporary tablespace temp】
2) 给用户修改密码
概述:一般以 dba 的身份(管理员用户sysdba),如果用其它用户去删除用户则需要具有 alter user权限。
语法结构:alter user 用户名 identified by 密码
3)删除用户
概述:一般以 dba 的身份去删除某个用户,如果用其它用户去删除用户则需要具有 drop user 的权限。
注意:在删除用户时, 如果要删除的用户,已经创建了表, 那么就需要在删除的时候带一个参数 cascade; Cascade 有级联的作用
语法结构:drop user 用户名 [cascade]
2、 给用户分配权限、角色
概述:创建的新用户是没有任何权限的,甚至连登录的数据库的权限都没有,需要为其指定相应的权限。给一个用户赋权限使用使令 grant,回收权限使用命令 revoke。
可参考这篇:Oracle权限管理详解
赋权限语法结构:grant 权限/角色 to 用户名;
回收权限语法结构:revoke 权限/角色 from 用户名;
1)权限指执行特定类型SQL命令或访问其他对象的权利(系统权限、对象权限)
系统权限:允许用户执行某些数据库管理相关的权限
create session(登录权限)
create table(创建表权限)
create index(创建索引权限)
create view(创建视图权限)
create sequence(创建序列权限)
create trriger(创建触发器权限)
对象权限:允许用户对某一特定对象执行特定的操作,比如对表的增删改查(insert 增、delete 删、update 改、select 查);
2)角色是具有名称的一组权限的组合,分为:预定义角色和自定义角色。
自定义角色:按需要定制一定权限形成角色,可以作为预定义角色的补充。来满足用户的需求。
预定义角色:把常用的权限集中起来,形成角色。常见的角色有:dba、connect、resource等;一般情况下普通用户有connect和resource的角色就够了。
CONNECT角色:临时用户,是授予用户的最基本的权利,能够连接到 oralce 数据库中,在对其他用户的表有访问权限时,做 SELECT、UPDATE、INSERTT 等操作。
Create session --建立会话;
Alter session --修改会话;
Create view --建立视图。
Create sequence --建立序列等权限
RESOURCE角色:更为可靠和正式的用户;具有创建表、序列、视图等权限。
Create table --建表;
Create trigger --建立促发器;
Create procedure --建立过程;
Create sequence --立序列;
Create type --建立类型等权限;
DBA角色:数据库管理员角色,拥有管理数据库的最高权限