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

    创建用户

    概述:在oracle中要创建一个新的用户使用create user 语句,一般是具有dba(数据库管理员)的权限才能使用。

    create user 用户名 identified by 密码;

    (Oracle有个毛病,密码必须以字母开头,如果以数字开头,它不会创建用户)

    给用户修改密码

    概述:如果给自己修改密码可以直接使用

    password 用户名

    如果给别人修改密码则需要具有dba的权限,或是拥有alter user的系统权限

    SQL>alter user 用户名 identified by 新密码

    删除用户

    概述:一般以dba的身份去删除某个用户,如果用其他用户去删除用户则需要具有drop user的权限。

    比如

    drop user用户名[cascade]

    在删除用户时,注意:

    如果要删除的用户,已经创建了表,那么就需要在删除的时候带一个参数cascade。

    用户管理的综合案例

    概述:创建的新用户是没有任何权限的,甚至连登录数据库的权限都没有,需要为其指定相应的权限。给一个用户赋权限使用命令grant,回收权限使用命令revoke。

    案例:

    SQL> conn xiaoming/m12;
    ERROR:
    ORA-01045: user XIAOMING lacks CREATE SESSION privilege; logon denied
    警告: 您不再连接到 ORACLE。
    SQL> show user;
    USER 为 ""
    SQL> conn system/p;
    已连接。
    SQL> grant connect to xiaoming;
    授权成功。
    SQL> conn xiaoming/m12;
    已连接。
    SQL>
    注意:grant connect to xiaoming;

    在这里,准确的讲,connect 不是权限,而是角色。。 看图:

    现在说下对象权限,现在要做这么件事情:

    * 希望xiaoming 用户可以去查询emp 表
    * 希望xiaoming 用户可以去查询scott 的emp 表

    grant select on emp to xiaoming

    * 希望xiaoming 用户可以去修改scott 的emp 表

    grant update on emp to xiaoming

    * 希望xiaoming 用户可以去修改/删除,查询,添加scott 的emp 表

    grant all on emp to xiaoming

    * scott 希望收回xiaoming 对emp 表的查询权限

    revoke select on emp from xiaoming

    对权限的维护

    * 希望xiaoming 用户可以去查询scott 的emp 表/还希望xiaoming 可以把这个权限继续给别
    人。

    --如果是对象权限,就加入 with grant option
    
    grant select on emp to xiaoming with grant option

    我的操作过程:

    SQL> conn scott/tiger;
    已连接。
    SQL> grant select on scott.emp to xiaoming with grant option;
    授权成功。
    SQL> conn system/p;
    已连接。
    SQL> create user xiaohong identified by m123;
    用户已创建。
    SQL> grant connect to xiaohong;
    授权成功。
    SQL> conn xiaoming/m12;
    已连接。
    SQL> grant select on scott.emp to xiaohong;
    授权成功。

    如果是系统权限
    system 给xiaoming 权限时:

    grant connect to xiaoming with admin option

    问题:如果scott 把xiaoming 对emp 表的查询权限回收,那么xiaohong 会怎样?

    答案:被回收。
    下面是我的操作过程:

    SQL> conn scott/tiger;
    已连接。
    SQL> revoke select on emp from xiaoming;
    撤销成功。
    SQL> conn xiaohong/m123;
    已连接。
    SQL> select * from scott.emp;
    select * from scott.emp
    第 1 行出现错误:
    ORA-00942: 表或视图不存在

    结果显示:小红受到诛连了。

  • 相关阅读:
    [草稿]挂载新硬盘
    [Android]开发环境配置(windows)-draft
    [草稿][C语言][内存分配]常见内存错误
    [草稿]Linux用户管理
    python的异步编程、IO多路复用、协程
    python的网络编程(socket)
    python的多进程、logging模
    python的Lock锁,线程同步
    python的并发和线程
    python的异常处理
  • 原文地址:https://www.cnblogs.com/hongmaju/p/4587690.html
Copyright © 2011-2022 走看看