Oracle11g创建表空间、⽤户、表、授权等语句
每个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 lo 第2步:创建数据表空间
create tablespace yuhang_data  logging  datafile 'D:\oracledata\yuhang_data.dbf' size 50m  autoextend on  next 50m maxsize 20480m  extent management loca 第3步:创建⽤户并指定表空间
create user yuhang identified by yuhang default tablespace yuhang_data  temporary tablespace yuhang_temp;  /*第4步:给⽤户授予权限  */
grant connect,resource,dba to yuhang;
//其他⽤不着的授权,了解⼀下oracle11g 创建数据库
//-------------------------------------------
-
- 登录授权;
grant connect to mike;
-- scott⽤户为mike赋予表emp的select权限;
grant select on emp to mike;
-- sys⽤户为mike赋予表emp的select权限;
grant select p to mike;
-- 授予mike⽤户增删改查p表的权限
grant select,insert,delete,update p 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 p 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;