`

oracle建立表空间,授权

 
阅读更多

oracle 创建create user 及授权grant 查看登陆的用户:

以下都可以:  
  show   user;  
  select   sys_context('userenv','session_user')   from   dual;  
  select   user   from   dual;    
 
  查看所有登录的用户必须为DBA 用户:  
  select   username   from   v$session;

sys、system等DBA 用户查看 其他用户(test)中的对象(表):
SQL> select * from test.student;


创建一个普通用户都把该用户用起来的流程:
1、创建用户 
SQL>create user test indentified by test;
这样就创建了一个用户名密码都为test的用户
但这个时候test还是不能登陆成功的,我们需要赋予相应的权限

2、赋予create session的权限
SQL>grant create session to test;
这样test用户就能成功登陆进去

但是此时用户还是不能创建表 我们需要赋予用户创建表的权限:
SQL>grant create table to test;
但是用户此时还不能创建表 因为需要有使用表空间的权限(相当于 用户有了进房间的钥匙 但是没有进大门的钥匙。。。)

所以也应该赋予相应的权限
SQL>grant unlimited tablespace to test;
这个时候用户就拥有了创建表的权限 由于表是用户test的 相应的他就拥有了对创建的表的增删查改的权限了

3、查看用户拥有什么权限可以通过查询一个系统的视图(数字字典)
SQL>select * from user_sys_privs;
这样就可以知道当前用户的权限

4、撤销权限
SQL> revoke create table from test; 

-----------------------------
一些常用视图的区分
dba_tables  dba_all_tables  user_tables  user_all_tables  all_tables  all_all_tables
当前用户所属的所有表(注意大写)
SQL> select tablespace_name,table_name from user_all_tables where table_name='STUDENT';
SQL> select table_name,tablespace_name from user_tables where table_name='STUDENT';
TABLE_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
STUDENT                        USERS

sys 要查看dba_all_tables,ALL_ALL_TABLES才能查看到 test 用户的表。
SQL> select owner,table_name,tablespace_name from dba_all_tables where owner='TEST';
SQL> select owner,table_name,tablespace_name from all_all_tables where owner='TEST';
SQL> select owner,table_name,tablespace_name from dba_tables  where owner='TEST';
SQL> select owner,table_name,tablespace_name from ALL_tables  where owner='TEST';
OWNER                          TABLE_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------ ------------------------------
TEST                           STUDENT                        USERS

1.DBA_ALL_TABLES describes all object tables and relational tables in the database. Its columns are the same as those in ALL_ALL_TABLES.
2.ALL_ALL_TABLES describes the object tables and relational tables accessible to the current user.
3.USER_ALL_TABLES describes the object tables and relational tables owned by the current user. Its columns (except for OWNER) are the same as those in 
ALL_ALL_TABLES.
----------------------------------------------------------------------

情景一:
用户test 用户test1
test1的用户创建了个表mytab 并且插入了一些数据
那么 test用户是否可以访问到test1的mytab怎么访问?
答:不可以,必须先授权
test1必须授权给test :grant select on mytab to test;
那么这个时候test可以通过 select * from test1.mytab;来访问mytab中的数据
如果想把某个表(对象)的所有权限都赋予给test那么可以:
grant all on mytab to test;
撤销所有权限
revoke all on mytab to test; 



总结
对于系统权限由sys来做
对于对象权限由 谁拥有谁授权

系统权限
    grant create session to test;
    grant create table to test;
   grant unlimited tablespace to test;

   revoke create session from test;
   revoke create table from test;
   revoke unlimited tablespase from test;
   grant create session to public;  //表示把创建表的权限赋予所有人
   select * from user_sys_privs;  //返回当前用户的所有系统权限

对象权限
    grant select on mytab to test;
   grant all on mytab to test;

   revoke select on mytab from test;
   revoke all on mytab from test;

   select * from user_tab_privs;  //返回当前用户所有的对象权限
   
   对象权限可以控制到列
   grant update(name) on mytab to test;
   grant insert(id) on mytab to test;

   select * from user_col_privs;
   注意、:查询和删除不能控制到列   
    需要有commit的 insert update insert

权限的传递
  系统权限的传递:
   grant alter table to A with admin option;
  那么A可以通过把该权限传递给B,如果想B也可以传递下去那么可以也带上with admin option
   grant alter table to B;
  对象权限的传递:
   grant select on mytab to A with grant option;
  那么A可以把在表mytab的select权限赋予给B,如果B想也能传递该select权限也可以带上with grant option
   grant select on mytab to B; 
 







新建:
oracle查看表空间及表空间容量

select dbf.tablespace_name,
dbf.totalspace "总量(M)",
dbf.totalblocks as "总块数",
dfs.freespace "剩余总量(M)",
dfs.freeblocks "剩余块数",
(dfs.freespace / dbf.totalspace) * 100 "空闲比例" 
from (select t.tablespace_name,
sum(t.bytes) / 1024 / 1024 totalspace,
sum(t.blocks) totalblocks
from dba_data_files t
group by t.tablespace_name) dbf,
(select tt.tablespace_name,
sum(tt.bytes) / 1024 / 1024 freespace,
sum(tt.blocks) freeblocks
from dba_free_space tt
group by tt.tablespace_name) dfs
where trim(dbf.tablespace_name) = trim(dfs.tablespace_name)

修改oracle表空间大小



查看表空间位置
select tablespace_name, file_id, file_name,round(bytes/(1024*1024),0) total_space from dba_data_files  order by tablespace_name;

创建临时表空间
create temporary tablespace user_temp
tempfile '/opt/oracle/oradata/jrtdb/user_temp.dbf'
size 1024m
autoextend on
next 50m maxsize 10240m
extent management local;   
创建数据表空间
//第2步:创建数据表空间  

create tablespace test_data  
logging
datafile 'D:\oracle\oradata\Oracle9i\user_data.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;  
注意:logging nologging的区别
//===
create tablespace test  
datafile '/home/app/oracle/oradata/oracle8i/test01.dbf' size 8M  
autoextend on  
next 5M  
maxsize 10M;
// 
# maxsize unlimited 是大小不受限制 
//
# extent management local uniform;  
# unform表示区的大小相同,默认为1M  
//
# extent management local autoallocate;  
# autoallocate表示区的大小由随表的大小自动动态改变,大表使用大区小表使用小区 
//
# extent management local uniform size 500K;  
# unform size 500K表示区的大小相同,为500K  
//
# temporary;  
# temporary创建字典管理临时表空间  
#  


   创建本地管理临时表空间,如果是临时表空间,所有语句中的datafile都换为tempfile  
  

   
为表空间增加数据文件:  
alter tablespace sales add  
datafile '/home/app/oracle/oradata/oracle8i/sales02.dbf' size 800M  
autoextend on next 50M  
maxsize 1000M; 

修改表空间大小
alter tablespace  datafile'/opt/oracle/oradata/jrtdb/users01.dbf'  resize 20480M
//错误 ORA-02142: missing or invalid ALTER TABLESPACE option

ALTER DATABASE DATAFILE'/opt/oracle/oradata/jrtdb/users01.dbf'  resize 20480M; //区分大小写
ALTER DATABASE DATAFILE'/opt/oracle/oradata/jrtdb/users01.dbf'  autoextend on next 1024M  maxsize 30720M; 

//创建用户并指定表空间  

create user username identified by password
default tablespace users
temporary tablespace user_temp;

create user jrtsch identified by jrtsch
default tablespace users
temporary tablespace user_temp;

//修改用户密码
查看用户
select username,password from dba_users;
修改用户口令 格式 alter user 用户名 identified by 新密码;

SQL> alter user jrtsch identified by jrt2011;
删除用户命令
drop user user_name cascade; 
//给用户授予权限  
grant connect,resource to username;  
撤销权限
revoke   权限...   from  用户名; 
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;

关于connect,resource包括的权利
    * oracle grant connect,resource to user包括的权限

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 --建立类型 

查看用户或角色所拥有的角色
connect jrtsch/jrtsch;
select * from user_role_privs;




所有权限
alter any cluster 修改任意簇的权限
   alter any index 修改任意索引的权限
   alter any role 修改任意角色的权限
   alter any sequence 修改任意序列的权限
   alter any snapshot 修改任意快照的权限
   alter any table 修改任意表的权限
   alter any trigger 修改任意触发器的权限
   alter cluster 修改拥有簇的权限
   alter database 修改数据库的权限
   alter procedure 修改拥有的存储过程权限
   alter profile 修改资源限制简表的权限
   alter resource cost 设置佳话资源开销的权限
   alter rollback segment 修改回滚段的权限
   alter sequence 修改拥有的序列权限
   alter session 修改数据库会话的权限
   alter sytem 修改数据库服务器设置的权限
   alter table 修改拥有的表权限
   alter tablespace 修改表空间的权限
   alter user 修改用户的权限
   analyze 使用analyze命令分析数据库中任意的表、索引和簇
   audit any 为任意的数据库对象设置审计选项
   audit system 允许系统操作审计
   backup any table 备份任意表的权限
   become user 切换用户状态的权限
   commit any table 提交表的权限
   create any cluster 为任意用户创建簇的权限
   create any index 为任意用户创建索引的权限
   create any procedure 为任意用户创建存储过程的权限
   create any sequence 为任意用户创建序列的权限
   create any snapshot 为任意用户创建快照的权限
   create any synonym 为任意用户创建同义名的权限
   create any table 为任意用户创建表的权限
   create any trigger 为任意用户创建触发器的权限
   create any view 为任意用户创建视图的权限
   create cluster 为用户创建簇的权限
   create database link 为用户创建的权限
   create procedure 为用户创建存储过程的权限
   create profile 创建资源限制简表的权限
   create public database link 创建公共数据库链路的权限
   create public synonym 创建公共同义名的权限
   create role 创建角色的权限
   create rollback segment 创建回滚段的权限
   create session 创建会话的权限
   create sequence 为用户创建序列的权限
   create snapshot 为用户创建快照的权限
   create synonym 为用户创建同义名的权限
   create table 为用户创建表的权限
   create tablespace 创建表空间的权限
   create user 创建用户的权限
   create view 为用户创建视图的权限
   delete any table 删除任意表行的权限
   delete any view 删除任意视图行的权限
   delete snapshot 删除快照中行的权限
   delete table 为用户删除表行的权限
   delete view 为用户删除视图行的权限
   drop any cluster 删除任意簇的权限
   drop any index 删除任意索引的权限
   drop any procedure 删除任意存储过程的权限
   drop any role 删除任意角色的权限
   drop any sequence 删除任意序列的权限
   drop any snapshot 删除任意快照的权限
   drop any synonym 删除任意同义名的权限
   drop any table 删除任意表的权限
   drop any trigger 删除任意触发器的权限
   drop any view 删除任意视图的权限
   drop profile 删除资源限制简表的权限
   drop public cluster 删除公共簇的权限
   drop public database link 删除公共数据链路的权限
   drop public synonym 删除公共同义名的权限
   drop rollback segment 删除回滚段的权限
   drop tablespace 删除表空间的权限
   drop user 删除用户的权限
   execute any procedure 执行任意存储过程的权限
   execute function 执行存储函数的权限
   execute package 执行存储包的权限
   execute procedure 执行用户存储过程的权限
   force any transaction 管理未提交的任意事务的输出权限
   force transaction 管理未提交的用户事务的输出权限
   grant any privilege 授予任意系统特权的权限
   grant any role 授予任意角色的权限
   index table 给表加索引的权限
   insert any table 向任意表中插入行的权限
   insert snapshot 向快照中插入行的权限
   insert table 向用户表中插入行的权限
   insert view 向用户视图中插行的权限
   lock any table 给任意表加锁的权限
   manager tablespace 管理(备份可用性)表空间的权限
   references table 参考表的权限
   restricted session 创建有限制的数据库会话的权限
   select any sequence 使用任意序列的权限
   select any table 使用任意表的权限
   select snapshot 使用快照的权限
   select sequence 使用用户序列的权限
   select table 使用用户表的权限
   select view 使用视图的权限
   unlimited tablespace 对表空间大小不加限制的权限
   update any table 修改任意表中行的权限
   update snapshot 修改快照中行的权限
   update table 修改用户表中的行的权限
   update view 修改视图中行的权限
     enqueue any queue 就是向所有队列中加入消息的权限;
     dequeue any queue 就是可以向所有队列使消息出队的权限;
     manage any queue 就是在所有所有方案下,允许运行DBMS_AQADM的权限


查看数据库文件的位置
select file_name from dba_data_files;


ALTER TABLE:添加,修改,删除表的列,约束等表的定义。
•查看列:desc 表名;
•修改表名:alter table t_book rename to bbb; 
•添加列:alter table 表名 add column 列名 varchar(30); 
•删除列:alter table 表名 drop column 列名; 
•修改列名MySQL: alter table bbb change nnnnn hh int; 
•修改列名SQLServer:exec sp_rename't_student.name','nn','column'; 
•修改列名Oracle:lter table bbb rename column nnnnn to hh int; 
•修改列属性:alter table t_book modify name varchar(22); 


分享到:
评论

相关推荐

    Oracle创建表空间用户及授权

    Oracle创建表空间用户及授权

    oracle创建表空间和用户授权及删除表空间和用户

    在Oracle数据库管理中,创建与删除表空间以及用户授权是非常重要的操作。本文将详细介绍如何在Oracle环境下进行这些操作,包括创建表空间、为用户分配权限、以及如何删除表空间和用户。 ### 一、创建表空间 #### ...

    完整ORACLE创建表空间、用户、设置用户权限脚本

    ### 完整Oracle创建表空间、用户及设置用户权限脚本解析 #### 一、创建表空间 在Oracle数据库管理中,创建表空间是数据库管理的基础之一。表空间是Oracle数据库中逻辑存储结构的一部分,它将数据库物理存储空间...

    oracle创建表空间,创建用户,授权给新建的用户实例全解

    在Oracle数据库管理中,表空间(Tablespace)是存储数据的主要单位,用户(User...以上就是Oracle数据库中创建表空间、创建用户以及授权的基本过程。通过理解这些概念和操作,你可以更好地管理和维护Oracle数据库系统。

    oracle数据库创建表空间和用户

    oracle数据库导入、导出数据、创建表空间、创建用户、用户授权等操作

    oracle创建表空间、用户

    ### Oracle 创建表空间与用户...以上就是关于Oracle创建表空间、用户、授权及数据导入导出的详细步骤和解释。这些操作对于日常的数据库管理和维护非常重要,掌握它们对于提高数据库系统的可用性和安全性具有重要意义。

    Oracle创建表空间、临时表、用户及用户授权

    在Oracle数据库管理中,表空间...以上就是Oracle数据库中创建表空间、临时表、用户及用户授权的基本步骤。在实际操作中,DBA应根据业务需求和安全性考虑来合理规划和管理这些元素,确保数据库的稳定运行和数据的安全。

    Oracle创建表空间、创建用户以及授权、查看权限.doc

    ### Oracle 创建表空间、创建用户及授权、查看权限 #### 一、创建表空间 在 Oracle 数据库中,表空间是逻辑存储结构的基本单位。它由一个或多个数据文件组成,用于存储数据库对象(如表、索引等)。创建表空间通常...

    oracle增加表空间

    本文将详细介绍如何在Linux操作系统下通过命令行方式增加Oracle数据库的表空间以及创建新用户,并授予必要的权限。 #### 二、准备工作 在开始之前,请确保已经完成了以下步骤: 1. **环境准备**:确保Linux系统上...

    oracle创建表空间用户授权

    ### Oracle 创建表空间与用户授权详解 #### 一、Oracle 表空间概念 在 Oracle 数据库中,表空间是逻辑存储单元,它由一个或多个数据文件组成,用于存储数据库对象(如表、索引等)。每个表空间都有其特定的目的,...

    Oracle数据库创建表空间、建立用户、授权、还原备份.docx

    ### Oracle数据库创建表空间、建立用户、授权及备份恢复详解 #### 一、创建与管理表空间 在Oracle数据库中,表空间是物理空间分配的基本单位。为了有效地管理和使用存储资源,合理地创建和配置表空间是非常重要的...

    ORACLE新建用户表空间及授权DBA

    通过以上步骤,我们不仅成功创建了一个新的表空间,还建立了一个具有特定权限的新用户。这对于管理和维护大型数据库系统至关重要,确保数据的安全性和访问控制。在实际应用中,DBA应根据具体需求,灵活调整表空间和...

    Oracle创建表空间、创建用户以及授权、查看权限

    在Oracle数据库管理中,创建表空间、用户及授权是一系列重要的操作,对于数据库的高效运行和安全性至关重要。本文将深入探讨这些操作的具体方法及其背后的原理。 ### 一、创建表空间 #### 1.1 创建临时表空间 临时...

    oracle 创建表空间、回滚段、用户、表的详细语法

    Oracle 创建表空间、回滚段、用户、表的详细语法 Oracle 是一种关系型数据库管理系统,广泛应用于各个行业。创建表空间、回滚段、用户、表是 Oracle 中最基本的操作之一,本文将详细介绍这四个操作的语法和步骤。 ...

    oracle一个创建用户,创建表空间、授权、剪标的完整的过程

    以上就是Oracle数据库中创建用户、创建表空间、授权以及剪标的完整过程。通过这些步骤,你可以有效地管理和控制数据库中的资源。在实际操作过程中,还需要根据具体需求调整表空间的大小、权限分配等参数,以满足不同...

    Oracle创建表空间、创建用户、授权、授权对象的访问以及查看权限

    根据提供的文件信息,本文将详细解释Oracle数据库中的关键操作,包括创建表空间、创建用户、授予用户权限等重要步骤,并进一步解析如何实现对特定数据库对象的访问授权以及如何查看用户的权限。 ### 一、创建表空间...

    oracle创建表空间,授权用户

    oracle创建表空间,授权用户,只需要连接plsql将代码执行,然后即可导入表和数据。

    oracle创建删除表空间和用户授权的一些语句 可以直接使用

    ### Oracle 创建与删除表空间及用户授权操作指南 在Oracle数据库管理中,创建与删除表空间、用户授权等操作是数据库管理员(DBA)经常需要处理的任务。这些操作对于确保数据库资源的有效分配、数据安全性和系统性能...

    Oracle表分区 建表空间 创建用户

    ### Oracle表分区、建表空间与用户管理 #### 一、表空间的创建与管理 在Oracle数据库中,**表空间**(Tablespace)是物理存储的逻辑容器,它由一个或多个数据文件组成。创建一个新的表空间对于数据库的管理非常重要...

Global site tag (gtag.js) - Google Analytics