【Orcale】sqlplus 基本指令操作之权限管理

    最近学习了写Oracle的东西,使用sqlplus操作Orcale的权限管理和角色管理。Oracle的sql*plus是与oracle数据库进行交互的客户端工具,借助sql*plus可以查看、修改数据库记录。在sql*plus中,可以运行sql*plus命令与sql语句。

首先是使用系统管理员权限登录数据库,它拥有最高权限;

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

如果出现下图的情况,可能是Ora c le的服务没有启动,首选启动服务,之后再次进行登录;

    

登录之后可以查看登录用户;

show user;
    

创建用户并授权;

    我们使用命令创建用户,Oracle中新建的用户也没有任何权限,必须授予权限;

系统权限  

grant create session to lisi;       //授予lisi用户创建session的权限,即登陆权限 (必须授予,登录使用)
grant create table to lisi;         //授予lisi用户创建表的权限
grant unlimited tablespace to lisi; //授予lisi用户使用表空间的权限(想创建表,必须具有使用表空间权限)
grant create session public; //把创建session的权限,授予所有的用户;

</pre><pre>
    PS:当一个用户具备了创建表和使用表空间的权限,创建的表属于该用户,该用户同时具备对这个表的增,删,改,查操作;

    创建用户并授权;

    

    能够授予同时也就能撤销权限;

revoke create session from lisi;       //授予lisi用户创建session的权限,即登陆权限 
revoke unlimited tablespace from lisi; //授予lisi用户使用表空间的权限
revoke create table from lisi;         // 授予lisi用户创建表的权限 


    我们使用lisi用户登录,查看它具有的系统权限;

select * from user_sys_privs;  //查看用户的系统权限;

    

   

对象权限

    oracle中对象是彼此分开的,默认情况下,不能相互访问数据,但是可以通过授予对象权限的方式,让不同用户之间的相互访问;

    我们使用lisi用户创建的表lisitable ,然后在没有给wangwu授权的情况下,让wangwu查询lisitable;(没有权限)

    

    我们让lisi用户把权限授予wangwu用户,同时也可以撤销授予其他用户的权限,授予的权限还可以具体到表的某一列上;

    

    这是我们使用wangwu用户来访问lisi用户的lisitable;

    

    我们可以查看对象所具备的权限;(以wangwu为例)



权限传递

    默认情况下,权限之间是不可以相互传递的;但是当我们加上admin option 之后就能进行传递;

    系统用户操作:

    

    lisi也具备授予wangwu,alert any table的权限;

    

    

总结

    通过这些操作系统权限,对象权限和权限之间的传递的一些指令,一方面熟悉了指令的使用,对数据库表的增删改查,同时也理解了Oracle的特点。

  

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 30
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值