用户名 spa rop brush 所有权 alter 普通用户 ins
代码
- CREATE USER target IDENTIFIED BY target ;
- GRANT CONNECT, RESOURCE TO target;
刚刚创建的 oracle 实例中会内建两个用户:system 和 sys。
(1) 新建用户
我们先使用 system 用户登录 oracle 实例来新建 t_user 用户。
新建用户格式:create user 用户名 identified by 密码 ;
如: create user t_user identified by t_user ;
修改用户的格式如下:
alter user 用户名 identified by 密码 ;
如:alter user t_user identified by t_user001 ; 将 t_user 用户的密码修改为 t_user001
删除用户格式:
drop user 用户名 [cascade]; 如果要删除的用户已经创建了表或视图等对象时,要删除时要加上 cascade 进行级联删除,可以删除该用户创建的东西。
drop user t_user ;
(2) 赋予用户权限
新建立起来的用户 t_user 还不能连接数据库,因为还没有权限。oracle 的权限分为系统权限和对象权限。系统权限允许用户执行特定的命令如:create session 登录数据库、create table 创建表等系统操作,对象权限是对数据库中的对象如表、视图中的内容进行操作,如 select on student 可以对 student 表中数据进行查询。
首先将 create session 权限赋给 t_user 用户:
赋予权限或角色的命令格式如下:
grant 权限 1,权限 2,角色 1,角色 2 to 用户 ;
grant connect ,resource to t_user ; connect 是连接数据库的角色,resource 是操作数据库资源的角色。
对象权限如对表有:select、delete、insert、update、all(含有该对象的所有权限)等权限或角色。
如果 system 用户有一个 emp 表,我们要将 emp 表的对象权限给 t_user 用户,则可以使用以下格式:
grant all on emp to t_user ; 将对 emp 表的 select、delete、insert、update 等权限给 t_user。这样我们就可以使用 t_user 查看 system 用户 emp 表的内容。
select * from system.emp ;
如果我们想将赋给 t_user 用户的权限使通过 t_user 用户赋给其他用户,则可以在给 t_user 用户赋权限时这样:
系统权限带 with admin grant option,对象权限带 with grant option 。如:
grant create table to t_user with admin grant option ;
grant select on emp to t_user with grant option ; 这样 t_user 也可以给其他用户付 emp 的 select 权限了。
(3)回收权限
当我们不想 t_user 用户可以删除 system 用户 emp 表的内容,我们可以将 delete on emp 权限收回,格式如下:
revoke 权限 1,权限 2,角色 1,角色 2 from 用户 ;
如:revoke delete on emp from t_user ; 这样我们就收回了 emp 表的 delete 权限
如果 t_user 将 emp 表的 delete 权限付给了 t_user2 用户,当我们收回 t_user 的 delete 权限时同时也收回了 t_user2 的 delete 权限,即:对象权限的回收会级联。
系统权限的回收不会级联。
(4)角色
oracle 提供了三种标准的角色:connect(连接角色)、resource(资源角色)、dba(数据库管理员角色)
connect:拥有该角色的用户可以连接数据库,但不能创建实体对象。
resource:拥有该角色的用户可以创建实体,但不能创建数据库结构。
dba:拥有该角色的拥有可以创建实体,也可以创建数据库结构。
普通用户拥有:connect、resource 角色,DBA 管理员:connect、resource、dba 三种角色。
oracle 新建对象 权限管理
来源: http://www.bubuko.com/infodetail-2051024.html