![](https://csdnimg.cn/release/download_crawler_static/88910476/bga.jpg)
语法:drop user 用户名 [cascade];
注意:如果用户在存在期间进行了数据库对象的创建,就可以利用 cascade 子句删除模
式中的所有对象;
示例:删除 c##user1 用户
DROP USER c##user1 ;
说明:用户被删除后,此用户下的所有对象(表,索引,子程序)都会一起被删除,删
除前请备份数据;
如果在 PDB 中已经存在一个用户或者角色,则在 CDB 中不能创建相同的账号或者角色名。
同样在 CDB 中创建账号后不能在 PDB 中出现同名的账号,因 CDB 中的账号对所有的 PDB
都是有效的。
在 CDB 中创建的账号将会在全部的 PDB 中出现,但是在 CDB 中的授权,如非特别指定的
话,并不能传递到 PDB 中。
本地用户只能在各自的 PDB 中进行操作,在不同 PDB 中可以存在同名的本地用户;
PDB 中的本地用户不能登陆其他 PDB 或 ROOT;
PDB 的本地用户只需要在本 PDB 内保持用户名唯一;
本地用户能否访问一个公用 Schema 中的对象取决于其拥有的具体权限;
PDB 能够通过 DB Link 访问其他的 PDB;
在一个 PDB 中访问另一个 PDB 中的数据呢?
使用 local user 是不可能的,因为 local user 完全 PDB 隔离,就算 local user 被赋予
了类似 dba、select any table 这些公共权限,也只是在 PDB 内有效,无法跨库访问,那么,
只能使用 common user。
举例:common user 跨 PDBs 访问
16:39:35 SYS@cdb1(CDB$ROOT)> show con_name
CON_NAME
------------------------------
CDB$ROOT
16:39:39 SYS@cdb1(CDB$ROOT)> create user c##wl_1 identified by 123;
User created.
16:39:43 SYS@cdb1(CDB$ROOT)> grant connect,resource,unlimited
tablespace,select any table,create view to c##wl_1;
Grant succeeded.
16:40:09 SYS@cdb1(CDB$ROOT)> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED