Oracle 数据库用户(user)的创建、删除以及授予权限

时间:2022-05-28 08:46:43

----------------------------------------------------
-----------Oracle 数据库用户创建学习
----------------------------------------------------
--创建用户,如同在网吧开机子一样,保护自身系统的安全性的同时,有简化了自己的操作(系统用户有很多繁杂的表)
--默认用户
/*
 用户名 密码
 sys  安装时确认
 system manager
 scott tiger
 注:Oracle10g 后的版本sys和system都是安装时设定的,而scott是默认锁定的
*/
create user user_name identified by password;
--详解:
/*
 创建一个用户名称为user_name,密码为password的用户;
 注:密码必须由字母开头
  如果以数字或其他符号开头会出现错误:ORA-00988: 口令缺失或无效
  如果以下划线“_”开头会出现错误:ORA-00911: 无效字符

*/

drop user user_name [cascade];
--详解
/*
 drop user user_name;
  仅仅删除用户
 drop user user_name cascade;
  删除用户的同时,删除此用户名下所有的
  使用cascade参数可以删除该用户的全部objects。
   1、如果用户的schema中有表,则在删除表的时候自动删除与该表相关的主键和外键。
   2、如果用户的schema中有表,则在删除表的时候自动删除与该表相关的索引。
   3、删除用户时,下列在其他用户中的objects不会被删除,只会被置为无效
   4、其他用户建立的基于被删除用户的物化视图不会被删除,只是不能在刷新了。
   5、用户模式下的所有触发器全部被删除
   6、被删除用户建立的其他用户不会被删除
*/

--赋予用户权限(c初始用户没有权限,连进入该用户都不可能)
 grant connect,resource,dba to user_name;
  --一般授予以上权限就可以了
--1、三个常用的系统权限的赋予语句:
--格式:grant 系统权限 to { public | role | username };
    grant create session to lisi;
  --创建会话权限,可以进入用户进行相关数据库操作
    grant create table to lisi;
  --创建表的权限
    grant unlimited tablespace to lisi;
  --使用表空间的权限
    grant create session to public;
  --对所有用户授予创建会话权限,public代表所有用户
 --删除以上权限,不做解释
  revoke create session from lisi;
  revoke create table from lisi;
  revoke unlimited tablespace from lisi;
--2、创建常用的对象权限

--示例
 --创建用户,并制定表空间
 create user username identified by password
  default tablespace test_data
  temporary tablespace test_temp;
 --给用户授予权限
 grant
  create session, create any table, create any view ,create any index, create any procedure,
  alter any table, alter any procedure,
  drop any table, drop any view, drop any index, drop any procedure,
  select any table, insert any table, update any table, delete any table
  to username;