您的位置:首页 > 数据库 > Oracle

oracle 创建用户

2015-09-11 13:23 567 查看

oracle用户创建及权限设置

权限:

  create session

  create table

  unlimited tablespace

  connect

  resource

  dba

  例:

  #sqlplus /nolog

  SQL> conn / as sysdba;

  SQL>create user username identified by password

  SQL> grant dba to username;

  SQL> conn username/password

  SQL> select * from user_sys_privs;

  我们将从创建Oracle用户权限表开始谈起,然后讲解登陆等一般性动作,使大家对Oracle用户权限表有个深入的了解。

  一、创建

  sys;//系统管理员,拥有最高权限

  system;//本地管理员,次高权限

  scott;//普通用户,密码默认为tiger,默认未解锁

  二、登陆

  sqlplus / as sysdba;//登陆sys帐户

  sqlplus sys as sysdba;//同上

  sqlplus scott/tiger;//登陆普通用户scott

  三、管理用户

  create user zhangsan;//在管理员帐户下,创建用户zhangsan

  alert user scott identified by tiger;//修改密码

  四,授予权限

  1、默认的普通用户scott默认未解锁,不能进行那个使用,新建的用户也没有任何权限,必须授予权限

  

  grant create session to zhangsan;//授予zhangsan用户创建session的权限,即登陆权限

  grant unlimited tablespace to zhangsan;//授予zhangsan用户使用表空间的权限

  grant create table to zhangsan;//授予创建表的权限

  grante drop table to zhangsan;//授予删除表的权限

  grant insert table to zhangsan;//插入表的权限

  grant update table to zhangsan;//修改表的权限

  grant all to public;//这条比较重要,授予所有权限(all)给所有用户(public)

  2、oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的,需要互相授权

  

  grant select on tablename to zhangsan;//授予zhangsan用户查看指定表的权限

  grant drop on tablename to zhangsan;//授予删除表的权限

  grant insert on tablename to zhangsan;//授予插入的权限

  grant update on tablename to zhangsan;//授予修改表的权限

  grant insert(id) on tablename to zhangsan;

  grant update(id) on tablename to zhangsan;//授予对指定表特定字段的插入和修改权限,注意,只能是insert和update

  grant alert all table to zhangsan;//授予zhangsan用户alert任意表的权限

  五、撤销权限

  基本语法同grant,关键字为revoke

  六、查看权限

  select * from user_sys_privs;//查看当前用户所有权限

  select * from user_tab_privs;//查看所用用户对表的权限

  七、操作表的用户的表

  

  select * from zhangsan.tablename

  八、权限传递

  即用户A将权限授予B,B可以将操作的权限再授予C,命令如下:

  grant alert table on tablename to zhangsan with admin option;//关键字 with admin option

  grant alert table on tablename to zhangsan with grant option;//关键字 with grant option效果和admin类似

  九、角色

  角色即权限的集合,可以把一个角色授予给用户

  create role myrole;//创建角色

  grant create session to myrole;//将创建session的权限授予myrole

  grant myrole to zhangsan;//授予zhangsan用户myrole的角色

  drop role myrole;删除角色

 

------------------------------------------------------

 

这里,我将Oracle当做一个类似于OA的管理系统来学习。

首先,安装oracle是第一步,学习状态下安装oracle的人比比皆是,事实上,能够在生产环境下安装oracle的人却凤毛麟角,有的人和oracle打一辈子交道,不一定实际的做过一次oracle数据库实施,但也从另一个角度上看出,oracle的安装实际上并不简单,能够在不同的环境下安装好oracle确实是一件非常了不起的事情。

这里,不再啰嗦安装步骤了,其他文章中会有描述的。

对于一个管理系统而言,用户名密码是第一步,例如你需要进入一个163邮箱,要不要输入用户名和密码呢?

回答是肯定的。

oracle给我们的首先是2个用户:

 

sys和system

 

这是2个默认的具有非常高的管理权限的用户,其中sys是最高管理员用户,system次之,权限不如sys大。

好了,现在了解到这里可以了,先不用再往下深究system和sys的具体细节了。

总结一下:

 

1 进入oracle需要输入用户名和密码
2 oracle默认有2个用户sys和system
3 sys和system都具有非常高的管理权限,但sys比system的权限大


 

sys用户是最高管理员用户,那我们就用这个sys用户登录oracle:



 

上图中,我们使用这句话登录了oracle:

 

Sql代码  


sqlplus sys/dwh as sysdba;  

sqlplus:oracle登录命令

sys/dwh:sys是用户名,dwh是密码

as sysdba:因为sys是最高管理员,所以需要加这句话。

虽然sqlplus的界面不好看,但我们使用sys用户登录到了oracle数据库。^_^

 

于是,我们完成了第一个知识点:登录oracle

不过,先别高兴,还没完。

生产环境下,我们不可能使用sys或system用户来操作数据库的,一个最重要的原因:

 

It is too dangerous!

 

使用sys或system可以很方便地将oracle数据库破坏掉,甚至永远不能恢复,所以一般我们不用这2个用户登录。

那么,就必须新建一个用户了。

实际需求中,我们需要创建一个用户bi,密码为bi,(哥们是搞BI的,所以这个比较熟悉)。

怎么才能创建出这个用户呢?

我们刚才使用sys用户登录了oracle,好的,不用退出,直接在sys用户的连接状态下创建bi用户。



上图中,使用这个语句创建了bi用户:

 

Sql代码  


create user bi identified by bi;  

 

create user:oracle创建用户关键词

bi:用户名

identified by:指定密码关键词

bi:密码 

好了,bi用户我们已经创建成了,貌似我们可以使用此用户登录了。

下面使用bi用户登录试试:



 

很遗憾,按照上图的错误描述,我们没有成功地用bi用户登录,这是为什么呢?

错误提示很清楚,bi用户没有create session权限。

create session权限是什么?为什么要有create session权限?又是谁来给bi用户这个权限?

这些问题现在不是必须要讨论的,现在能做的,是解决这个错误,也就是给bi用户以create session权限。

再次使用sys用户登录,并赋予bi用户create session权限:



 

上图中,使用这个语句赋予了bi用户以create session权限,然后,就可以使用bi用户登录了。

 

Sql代码  


grant create session to bi;  

grant:赋权关键词

create session:权限-创建连接

to:与grant关键词配对

bi:用户名

bi用户有了create session权限就可以登录oracle了。

通过上面的操作我们明白了:

1 可以使用create user语句自己创建用户

2 创建完用户之后必须赋予create session权限才能登录oracle

3 在sys用户下可以给自己创建的用户(例如bi)赋权create session

 

本课知识点回顾:

1 进入oracle需要输入用户名和密码
2 oracle默认有2个用户sys和system
3 sys和system都具有非常高的管理权限,但sys比system的权限大


4 可以使用create user语句自己创建用户

5 创建完用户之后必须赋予create session权限才能登录oracle

6 在sys用户下可以给自己创建的用户(例如bi)赋权create session



--------------------------------------------------------------------------------





上一课讲了oracle的登录和创建一个简单的用户,那么现在就说一下如何删除用户和退出oracle。

 



 

从上图中可以看出,似乎使用了很简单的命令,就完成了用户的删除和oracle的 退出。

 

 

Sql代码  


--删除用户  

drop user 用户名;  

--退出oracle登录  

exit;  

 

本课知识点:

1 在sys用户下删除用户

2 使用drop user关键字删除用户

3 使用exit退出oracle登录
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: