zoukankan      html  css  js  c++  java
  • oracle用户管理, 授权与回收权限

    一. 用户管理参数,

    0.删除用户: drop user 用户名 [cascade]

      当我们删除用户时, 如改用户已创建过数据对象, 那么删除用户时必须加cascade参数, 用来同步删除

      改用户的所有信息. 如还想使用该用户的数据, 则不可删除用户, 可以冻结该用户即可.

    1.创建用户方法一:

      create user 用户名 identified by 密码 ;  # 创建用户, 但缺少必要的东西, 完整命令看下面.

      创建的用户没有任何权限.ORA-01045: user QUZQ lacks CREATE SESSION privilege; logon denied

      需要dba给新建的用户进行授权,如下: 基本语法: grant 权限/角色 to 用户

      grand connect to 用户名    # 授权可以链接数据库

      grand resource to 用户名   # 授权建表无空间大小的限制

      grand dba to 用户名            # 设置用户为dba

      grand create session to 用命名  # create session权限即登陆数据库实列

      使用revoke命令可回收权限或角色,  语法: revoke  权限/角色  from  用户

      角色就是权限的一个集合, 角色分为预先定义(即oracle定义的) 和 自定义的

    2.创建用户方法二:

       sql > create user 用户名 identified by 密码

        default tabspace users  # 指定新建用户的表空间为users, users是oracle自带的一个表空间

        temporary tablespace temp  # 指定临时表空间为temp, temp空间也是oracle自带的

        quota 3m on users;   # 用来限制改用户创建的数据对象最大只能是3M

    3.oracle中用户的权限管理概念图如下:

      

    二. 用户方案

      oracle会给每个用户创建个方案(方案可理解为用户的独立存储空间; 把oracle比喻成一个大房子, 那方案就相当于是大房子

      中隔出来的小房子, 每当添加个oracle用户时, 就会在大房子里隔出个小屋), 当然前提是该用户要创建数据对象, 不然是不会

      被分配方案的. 每个用户的方案都是隔离的, 各个方案中的表名都可以相同; oracle给用户创建的方案名同用户名.

      1. 现有两个用户, user1和user2, 如何实现user1来访问user2中的stu表呢? 正常情况这两用户是不能互相访问的.

        首先使用user2登陆, 执行授权命令,如下:

        grant select [update | delete | insert | all ] on stu to user1   # 参数为all时, 表示增删改查

        然后使用user1登陆, 执行相应命令, 语法如下:

        select * from user2.stu   # select * from 方案名.表明

      2. 有三个用户, user1和user2和user3, 如何把user1的stu表权限给user2,并由user2再把user1的stu表权限给user3呢

        这里涉及两个命令: with admin option  # 如果是支配系统权限, 则使用这个命令; 用于系统权限

                with grant option  # 得到权限的用户, 可继续分配权限, 即有支配所得权限的能力; 用于对象权限

        grant all on user1.stu to user2 with grant option    # 登陆user1前提下给user2支配stu表和crud该表的能力

        grant all on user1.stu to user3  # 登陆user2把user1的stu表增删该查权限给user3, 但user3无再分配权限的能力

    三. 用户管理之限制登陆次数, 锁定账户时长

      1. 创建profile限制集合, 用于配置限制的设置

        create profile 集合名 limit failed_login_attempts 3 password_lock_time 2;

        limit failed_login_attempts 3  # 限制登陆次数为3

        password_lock_time 2          # 3次失败后账户锁定2天

      2. 把创建好的限制集合分配给用户user1

        alter user user1 profile 集合名;

      3. profile是口令限制.资源限制的命令集合, 当建立用户没有指定frofile选项, oracle将会产生个名为default的profile,

        并将该default分配给用户.

  • 相关阅读:
    225. Implement Stack using Queues
    232. Implement Queue using Stacks
    LeetCode 763 划分字母区间
    CentOS7+eDEX-UI打造属于你的极客桌面
    好玩又有趣的linux终端命令
    Linux 应急响应入门——入侵排查
    active_anon/inactive_anon
    Red Hat 平台的推荐交换大小是多少?
    为什么RHEL系统使用交换空间而不是释放缓存和缓冲内存?
    RHEL 交换内存(Swap)使用率为 100%
  • 原文地址:https://www.cnblogs.com/quzq/p/11333465.html
Copyright © 2011-2022 走看看