忆江南-春风

象蜗牛一样生活
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

oracle新建用户

Posted on 2013-09-21 00:47  忆江南-春风  阅读(571)  评论(0编辑  收藏  举报

刚刚创建的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三种角色。