现在的位置: 首页 > 综合 > 正文

Oracle用户的创建及权限的操作

2013年09月11日 ⁄ 综合 ⁄ 共 1413字 ⁄ 字号 评论关闭

在这篇文章中capucivar将介绍Oracle用户的创建以及权限的操作。

    首先,打开sqlplus,用scott用户登录,创建一个用户的语句为:create user username identified by pwd;username为你要创建的用户名,pwd为用户密码。现在capucivar要创建一个用户名为capucivar,密码为capucivar的用户,那么sql应该这样写:create user capucivar identified by capucivar;但是执行结果如下:

 

上图显示权限不足,也就是scott用户没有添加用户的权限,那么谁有这个权限呢?capucivar在《capucivar浅谈Oracle数据库》一文中提到过,Oracle中有三个重要的用户分别是:

    a、用户名:sys 默认密码为:change_on_install;

    b、用户名:system 默认密码:manager;

    c、用户名:scott 默认密码:tiger。

capucivar当时还对三个用户的权限有这样一个比喻:sys是董事长,system是经理,而scott是职员。所以sys用户有创建用户的权限。

    那么,我们从scott切换到sys登录:conn sys/change_on_install as sysdba,登陆成功之后,就可以创建上面的capucivar用户了。我们打开Enterprise Manager Console,就可以看到刚才创建的用户capucivar:

 

一个capucivar用户创建好了,是不是就可以用这个用户登录了呢?我们来试一下:conn capucivar/capucivar,结果如下:

 

这是因为还没有给capucivar用户登录的权限。

我们再次用sys登录,写上如下sql语句:grant connect,resource to capucivar;这句话就赋予capucivar用户连接数据库和对自己用户下数据库表的增删改查的权限。

 

权限赋予成功之后,我们就可以用capucivar用户名来登录并对数据表进行操作了。

    接下来需要思考的是,这个capucivar用户能不能查看其他用户下的数据表呢?比如现在想要查看scott用户下的emp表:select * from scott.emp;结果如下:

 

    这说明capucivar用户没有权限操作其他用户的数据表。如果在一定条件下,capucivar用户必须查看scott用户下的表,怎么办呢?既然capucivar要查看的是scott用户下的表,当然要由scott来给他权限进行操作。那我们就用scott用户登录,给capucivar用户对自己数据表的增删改查的权限:grant select,delete,update,insert on emp to capucivar;这个sql语句赋予capucivar对scott用户下的emp表的增删改查权限。授权成功之后就可以执行scott用户下emp表的增删改查操作了。

scott用户如果要收回capucivar对emp表的删除权限收回权限的关键字为:revoke,收回删除权限的sql语句为:revoke delete on emp from capucivar;这句话可以理解为字面意思:从capucivar收回对emp的删除。收回所有权限的sql语句为:revoke all on emp from capucivar;

抱歉!评论已关闭.