zoukankan      html  css  js  c++  java
  • OracleDBA之用户管理

      再分享一下Oracle中对用户的管理,以下这些东西是我的麦库上存的当时学Oracle的学习笔记今天拿出来和大家分享一下,转载请注明出处,下面用的Oracle的版本是10g,用的时WinServer2003的操作系统,可能有些命令和Oracle11g的有所不同,但大部分是一样的,接下来还会陆续的分享一下Oracle中对数据库的管理,对表的管理,还有Oracle中的存储过程和PL/SQL编程。用到的Oracle的管理工具是PL/SQL Developerl和SQL PLUS,欢迎大家批评指正。

    1.用户的创建

      在Oracle数据库创建数据库用create user语句来实现,一般是具有dba的权限才能实现。
      demo:

    sql> create user UserName identified by UserPassWord;
    sql>用户已创建。(在创建用户时用户密码必须以字母开头,否则无法创建用户)

    2.修改密码
      给用户修改密码:
      如果给自己修改密码可以用

    1 sql>password 即可;

      给别人修改密码必须有数据库dba权限或者系统的alter user权限

    1  sql> alter user 用户名 identified by 新密码;

    3.删除用户:
      需要有数据库dba权限或者drop user 权限

    1  demo: sql> drop user 用户名 【cascade】 cascade在删除用户的同时把用户所创建的表也一并删除;

    4.赋权限

      创建的用户是没有任何权限的,需要给他赋予一些操作数据库的一一些权限给用户赋权限用关键字grant, 回收用户的权限用revoke

      给用户赋予连接数据库的权限:
     

    sql>grant connect to 用户名;

      系统权限的传递性设置:

    sql>grant connect to 用户名 with admin option;

      oracle数据库中的权限包括系统权限和对象权限
          系统权限:用户对数据库的相关权限;如:创建数据库,删除数据库,创建和删除用户;
          对象权限:用户对其数据对象的操作权限,数据对象如表,视图,函数,过程等:

    5.oracle 中的角色:
      角色的概念:角色是多种权限的组合包括 预定义角色和自定义角色,如connect权限,dba权限,resource权限等;
      connect权限是赋予用户连接数据库的权限,dab权限是数据库的最高权限,resource 权限是赋予用户使用数据库存储资源的权限即创建和操作表的权限;

      对象的权限:select, insert, update, delete, all(包含上述的四个), create index ……常用的是对表的操作赋予用户对象权限的语法如下:

    1 grant 权限 on 表名 to 用户名; demo: grant select on emp to ludashi;

      把scott下的表的select对象权限赋予li;

    sql>grant select on emp to li;
    sql>conn li/li;
    sql>select * from scott.emp; --查询scott下的emp表,必须为scott.emp才可以查询成功。这涉及到“方案”的概念。

      如果是dba用户,把用户scott的下的emp表的select对象权限赋给li用户:

    sql>grant select on scott.emp to li;(方案名.表名);

      设置用户权限的可传递性:

    sql>grant select on emp to li with grant option; --li用户可以把别人赋给他的权限在赋给其他人;


    6.回收用户权限:
      revoke 权限 on 表名 from 用户名;
      scott用户撤回他赋给li用户的select权限:

    1 revoke select on emp from li;

      sys用户撤回scott用户把自己的emp表的select权限赋给li;

    revoke select on scott.emp from li;



      desc命令: desc 表名;显示表结构;

    7.Oracle权限的回收传递问题:
      系统角色的回收问题(如connect,resources等):
        sys用户:--把连接数据库的角色赋给test1,并设置为可传递性;

    sql>grant connect to test1 with admin option;

        test1用户:--test1把连接数据库的权限传递给test2

    sql>grant connect to test2;

      test1和test2都可以连接数据库,即test1把连接数据库的权限传递给了test2;

      sys用户:--sys用户回收test1连接数据库的权限

    sql>revoke connect from test1;

    把test1用户的权限回收后test1,无法连接数据库。

    可对于系统角色来说回收test1角色的同时,传递给test2的角色仍然存在;

    8.权限的回收问题:
      sys用户:--sys用户把方案scott下的emp表的select权限赋给test1,并设置为可传递性;

    sql>grant select on scott.emp to test1 with grant option;

      test1用户:把对emp表的select的权限赋给test2;

    sql>grant select on scott.emp to test2;

      sys用户:--回收test1的select的权限

     sql>revoke select on scott.emp from test1;

    在回收test1的select权限的同时也把test2的权限回收了;


    9.profile用户权限管理:
      Oracle设定用户登录次数,登录失败几次后自动locked用户;

    sys>用户:create profile创建配置文件;设定密码错误三次后密码被锁两天的配置文件, 名字为fileName;
    sql> create profile fileName limit failed_login_attempts 3 password_lock_time 2;
    sql>alter user userName profile fileName;

      用户解锁:

    sql> alter user userName account unlock;

      Oracle 设定用户密码的过期时间,即密码的有效期;
      sys用户:创建配置文件fileName 设置密码的过期时间是10天,宽限日是两天;

  • 相关阅读:
    web前端的发展态势
    AngularJs 简单入门
    css代码优化篇
    git提交报错:Please make sure you have the correct access rights and the repository exists.
    Activiti工作流框架学习
    遍历map集合的4种方法
    js设置日期、月份增加减少
    Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
    webservice_rest接口_学习笔记
    相互匹配两个list集合+动态匹配${}参数
  • 原文地址:https://www.cnblogs.com/zhangkeyu/p/6659387.html
Copyright © 2011-2022 走看看