每个oracle用户都有一个名字和口令,并拥有一些由其创建的表、视图和其他资源。oracle角色(role)就是一组权限(privilege)(或者是每个用户根据其状态和条件所需的访问类型)。用户可以给角色授予或赋予指定的权限,然后将角色赋给相应的用户。一个用户也可以直接给其他用户授权。
登陆数据库服务器:
su - oracle
sqlplus "/as sysdba"
alter system flush shared_pool;
exit
假如现在已经建好名为'NewDB'的数据库
此时在D:appAdministratororadata目录下已经存在NewDB目录(注意:我的Oracle11g安装在D盘下,若你的Oracle安装在别的目录,那么你新建的数据库目录就在*:appAdministratororadata目录下)。
1.创建用户之前要创建"临时表空间",若不创建则默认的临时表空间为temp。
CREATE TEMPORARY TABLESPACE DB_TEMP
TEMPFILE 'D:appAdministratororadataNewDBDB_TEMP.DBF'
SIZE 32M
AUTOEXTEND ON
NEXT 32M MASIZE UNLIMITED
EXTENT MANAGEMENT LOCAL;
2.创建用户之前先要创建数据表空间,若没有创建则默认永久性表空间是system。
SQL> CREATE TABLESPACE DB_DATA
LOGGING
DATAFILE 'D:appAdministratororadataNewDBDB_DATA.DBF'
SIZE 32M
AUTOEXTEND ON
NEXT 32M MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL;
其中'DB_DATA'和'DB_TEMP'是你自定义的数据表空间名称和临时表空间名称,可以任意取名;'D:appAdministratororadataNewDBDB_DATA.DBF'是数据文件的存放位置,'DB_DATA.DBF'文件名也是任意取;'size 32M'是指定该数据文件的大小,也就是表空间的大小。
3.现在建好了名为'DB_DATA'的表空间,下面就可以创建用户了:
SQL> CREATE USER NEWUSER IDENTIFIED BY BD123
ACCOUNT UNLOCK
DEFAULT TABLESPACE DB_DATA
TEMPORARY TABLESPACE DB_TEMP;
默认表空间'DEFAULT TABLESPACE'使用上面创建的表空间名:DB_DATA。
临时表空间'TEMPORARY TABLESPACE'使用上面创建的临时表空间名:DB_TEMP。
4.接着授权给新建的用户:
SQL> GRANT CONNECT,RESOURCE TO NEWUSER; --表示把 connect,resource权限授予news用户
SQL> GRANT DBA TO NEWUSER; --表示把 dba权限授予给NEWUSER用户
授权成功。
OK! 数据库用户创建完成,现在你就可以使用该用户创建数据表了!
总结:创建用户一般分四步:
第一步:创建临时表空间
第二步:创建数据表空间
第三步:创建用户并制定表空间
第四步:给用户授予权限
分为四步
第1步:创建临时表空间
create temporary tablespace yuhang_temp tempfile 'D:\oracledata\yuhang_temp.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local;
第2步:创建数据表空间
create tablespace yuhang_data logging datafile 'D:\oracledata\yuhang_data.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local;
第3步:创建用户并指定表空间
create user yuhang identified by yuhang default tablespace yuhang_data temporary tablespace yuhang_temp;
/*第4步:给用户授予权限 */
grant connect,resource,dba to yuhang;
//其他用不着的授权,了解一下
//-------------------------------------------
-- 登录授权;
grant connect to mike;
-- scott用户为mike赋予表emp的select权限;
grant select on emp to mike;
-- sys用户为mike赋予表emp的select权限;
grant select on scott.emp to mike;
-- 授予mike用户增删改查scott.emp表的权限
grant select,insert,delete,update on scott.emp to mike;
//-------------------------------------------
--查看数据库中所有用户的名称;
select username from dba_users;
--新建用户
create user mike identified by 3713;
--改密用户
alter user mike identified by 3714;
//-------------------------------------------
//权限回收
--scott用户回收mike对emp表的select权限;
revoke select on emp from mike;
--sys用户回收mike对emp表的select权限;
revoke select on scott.emp from mike;
//查看权限与角色
--查看当前用户本身具有的权限
select * from session_privs;
--查看当前用户本身具有的角色
select * from user_role_privs;
--查看connect角色有哪些权限
select * from user_role_privs where GRANTED_ROLE='CONNECT';
//1.创建临时表空间
create temporary tablespace hbdb_temp
tempfile 'D:\oracledata\hbdb_temp.dbf'
size 50m
autoextend on
next 50m
maxsize 20480m
extent management local;
//2.创建表空间
create tablespace HBDB
logging
datafile 'D:\oracledata\hbdb.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
//3.创建用户:用户为hb_cloud_disk 密码为hb_cloud_disk 用户空间HBDB
create user hb_cloud_disk identified by hb_cloud_disk default tablespace HBDB temporary tablespace hbdb_temp;
//4.授权给用户
-- 授予hb_cloud_disk用户 登录连接(connect) 和 资源(resource)权限
grant connect, resource to hb_cloud_disk;
-- 授予不限制的表空间
grant unlimited tablespace to hb_cloud_disk;
-- 授予创建数据库权限
grant create database link to hb_cloud_disk;
-- 授予查询任何序列,视图等权限
grant select any sequence,create materialized view to hb_cloud_disk;
-- 授予查询任何表
grant select any table to hb_cloud_disk;
-- 为该用户赋予dba角色
grant dba to hb_cloud_disk;
//------------------------------------------------------
//删除表空间
drop tablespace HBDB including contents and datafiles;
//删除用户
drop user hb_cloud_disk cascade;
//撤销权限connect和resource权限
revoke connect, resource from hb_cloud_disk;
//------------------------------------------------------
//2.创建表空间
create tablespace HBDB
logging
datafile 'D:\oracledata\hbdb.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
//3.创建用户:用户为hb_cloud_disk 密码为hb_cloud_disk 用户空间HBDB 临时空间为hbdb_temp
create user hb_cloud_disk identified by hb_cloud_disk default tablespace HBDB;
//4.授权给用户
-- 授予hb_cloud_disk用户 登录连接(connect) 和 资源(resource)权限
grant connect, resource to hb_cloud_disk;
-- 授予不限制的表空间
grant unlimited tablespace to hb_cloud_disk;
-- 授予创建数据库权限
grant create database link to hb_cloud_disk;
-- 授予查询任何序列,视图等权限
grant select any sequence,create materialized view to hb_cloud_disk;
-- 授予查询任何表
grant select any table to hb_cloud_disk;
-- 为该用户赋予dba角色
grant dba to hb_cloud_disk;
//------------------------------------------------------
//删除表空间
drop tablespace HBDB including contents and datafiles;
//删除用户
drop user hb_cloud_disk cascade;
//撤销权限connect和resource权限
revoke connect, resource from hb_cloud_disk;
//------------------------------------------------------