一、创建用户
oracle内部有两个建好的用户:system和sys。用户可直接登录到system用户以创建其他用户,因为system具有创建别 的用户的 权限。 在安装oracle时,用户或系统管理员首先可以为自己建立一个用户。
语法[创建用户]: create user 用户名 identified by 口令[即密码];
例子: create user test identified by test;
语法[更改用户]: alter user 用户名 identified by 口令[改变的口令];
例子: alter user test identified by 123456;
二、删除用户
语法:drop user 用户名;
例子:drop user test;
若用户拥有对象,则不能直接删除,否则将返回一个错误值。指定关键字cascade,可删除用户所有的对象,然后再删除用户。
语法: drop user 用户名 cascade;
例子: drop user test cascade;
三、授权角色
三种标准角色:
CONNECT角色: --是授予最终用户的典型权利,最基本的
ALTER SESSION --修改会话
CREATE CLUSTER --建立聚簇
CREATE DATABASE LINK --建立数据库链接
CREATE SEQUENCE --建立序列
CREATE SESSION --建立会话
CREATE SYNONYM --建立同义词
CREATE VIEW --建立视图
RESOURCE角色: --是授予开发人员的
CREATE CLUSTER --建立聚簇
CREATE PROCEDURE --建立过程
CREATE SEQUENCE --建立序列
CREATE TABLE --建表
CREATE TRIGGER --建立触发器
CREATE TYPE --建立类型
dba:(数据库管理员角色)
dba role拥有所有的系统权限,包括无限制的空间限额和给其他用户授予各种权限的能力。system由dba用户拥有
(1)授权命令
语法: grant connect, resource to 用户名;
例子: grant connect, resource to test;
(2)撤销权限
语法: revoke connect, resource from 用户名;
列子: revoke connect, resource from test;
(3)创建/授权/删除角色(自定义角色)
除了前面讲到的三种系统角色----connect、resource和dba,用户还可以在oracle创建自己的role。用户创建的role可以由表或系统权限或两者的组合构成。为了创建role,用户必须具有create role系统权限。
1》创建角色
语法: create role 角色名;
例子: create role testRole;
2》授权角色
语法: grant select on class to 角色名;
列子: grant select on class to testRole;
注:现在,拥有testRole角色的所有用户都具有对class表的select查询权限
3》删除角色
语法: drop role 角色名;
例子: drop role testRole;
四、授权操作表
赋予用户登录数据库的权限 grant create session to xxx;
授予用户操作表空间的权限 grant unlimited/create/alter/drop/manage tablespace to xxx;
撤销用户操作表空间的权限 revoke unlimited/create/alter/drop/manage tablespace from xxx;
grant create session to zhangsan;--授予zhangsan用户创建session的权限,即登陆权限 grant unlimited session to zhangsan;--授予zhangsan用户使用表空间的权限 grant create table to zhangsan;--授予创建表的权限 grant drop table to zhangsan;--授予删除表的权限 grant insert table to zhangsan;--插入表的权限 grant update table to zhangsan;--修改表的权限 grant select on tablename to zhangsan;--授予zhangsan用户查看指定表的权限 grant drop on tablename to zhangsan--授予删除表的权限 grant insert on tablename to zhangsan;--授予插入的权限 grant update on tablename to zhangsan;--授予修改表的权限
select * from user_sys_privs;--查看当前用户所有权限 select * from user_tab_privs;--查看所用用户对表的权限 select * from user_sys_privs;--查看当前用户所有权限 select * from user_tab_privs;--查看所用用户对表的权限
注;数据库是一个整体,一个数据库下可保护多个用户、多个表、多个存储过程、多个job、多个视图等。而表空间可以认为是数据实体文件的分类,比如有用户表空间、系统表空间、索引表空间等,一个表空间可以保护多个实体文件。可以设置表空间的存储大小,但实际使用多少由已存在的数据来决定。比如设置用户表空间为10G,则存储设备就会分配10G给它。该表空间已经存在资料2G,那么还可以写8G数据进去,但此过程中该表空间只占用10G,不会增加,除非用完10G后不够,则需要再增加。
五、新建用户一般需要赋予的权限如下
grant create table to MEMBER;
grant create view to MEMBER;
grant create database link to MEMBER;
grant create sequence to MEMBER;
grant create trigger to MEMBER;
grant create procedure to MEMBER;
grant create job to MEMBER;
ALTER USER MEMBER QUOTA UNLIMITED ON users;
grant create job to MEMBER;
grant MEMBER tablespace to MEMBER;
ALTER USER MEMBER QUOTA UNLIMITED ON users;