zoukankan      html  css  js  c++  java
  • drop user和drop user cascade的区别(转)

     drop user和drop user cascade的区别

    http://blog.chinaunix.net/uid-21187846-id-3049198.html

    分类: Oracle

    1.oracle数据库中删除用户有两种命令,一种是 drop user xxx;另外一个种是drop user xxx cascade;

    2.官方的说明如下:

    Dropping a Database User: Example If user Sidney's schema contains no objects, then you can drop sidney by issuing the statement:

    DROP USER sidney;

    If Sidney's schema contains objects, then you must use the CASCADE clause to drop sidney and the objects:

    DROP USER sidney CASCADE;

    大概就是说drop user xxx必须是这个用户下面没有任何对象;这样才可以使用这个命令,否则就会报错;如果用户下面有对象,就得用drop user xxx cascade来删除这个用户以及这个用户下的所有对象了;

    3.测试实验;

    环境:我的DELL笔记本电脑,系统是XP,oracle10g 32位

    脚本如下:


    C:Documents and SettingsAdministrator>sqlplus /nolog

    SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 12月 26 22:46:12 2011

    Copyright (c) 1982, 2005, Oracle.  All rights reserved.

    SQL> conn / as sysdba;
    已连接。
    SQL> show user;
    USER 为 "SYS"
    SQL> create user mary identified by mary;

    用户已创建。

    SQL> grant dba to mary;

    授权成功。

    SQL> --创建好用户mary后,查看这个用户下面是否有对象;
    SQL> select object_type,count(*) from all_objects where owner='MARRY' group by object_type

    未选定行

    SQL> --发现没有任何对象,那我们试着来删除用户mary;
    SQL> drop user mary;

    用户已删除。

    SQL> --现在我们再重新创建一个用户jack;
    SQL> create user jack identified by jack;

    用户已创建。

    SQL> grant dba to jack;

    授权成功。

    SQL> --以jack用户连接到数据库,并创建一个表;
    SQL> conn jack/jack;
    已连接。
    SQL> show user;
    USER 为 "JACK"
    SQL> create table test (id number(2),
      2  name varchar2(10));

    表已创建。

    SQL> --再以sys用户连接来查看jack下面是否有对象;
    SQL> conn / as sysdba
    已连接。
    SQL> show user;
    USER 为 "SYS"
    SQL> select object_type,count(*) from all_objects where owner='JACK' group by object_type;

    OBJECT_TYPE           COUNT(*)
    ------------------- ----------
    TABLE                        1

    SQL> --发现下面有一个表,然后我们尝试用drop user命令来删除用jack;
    SQL> drop user jack;
    drop user jack
    *
    第 1 行出现错误:
    ORA-01922: 必须指定 CASCADE 以删除 'JACK'


    SQL> --发现报错了,无法删除,因为用户jack下面有对象;然后我们用drop user cascade来删除jack;
    SQL> drop user jack cascade;

    用户已删除。

    SQL> --测试成功;

  • 相关阅读:
    PAT Advanced 1067 Sort with Swap(0, i) (25分)
    PAT Advanced 1048 Find Coins (25分)
    PAT Advanced 1060 Are They Equal (25分)
    PAT Advanced 1088 Rational Arithmetic (20分)
    PAT Advanced 1032 Sharing (25分)
    Linux的at命令
    Sublime Text3使用指南
    IntelliJ IDEA创建第一个Groovy工程
    Sublime Text3 安装ftp插件
    Sublime Text3配置Groovy运行环境
  • 原文地址:https://www.cnblogs.com/gongyu/p/4103035.html
Copyright © 2011-2022 走看看