oracle11g用户创建及赋权操作
- 格式:doc
- 大小:33.00 KB
- 文档页数:2
Oracle系统中用户权限的赋予,查看和管理.在Oracle数据库中,用户的权限分为两种(在这里我们不讨论dba或oper的权限,只考虑普通用户的权限),分别是System Privilege系统权限和User Table Privilege用户数据表权限.1.首先,创建用户,以下几条命令可以创建一个用户,前提是必须以DBA的身份登录(如果你不是DBA,不要看下去了):create user DB_USER identified by DB_USER_PW '创建用户DB_USER,密码为DB_USER_PW grant create session to DB_USER '给用户创建会话的权限grant resource to DB_USER2.当用户建立后,会自动在Oracle数据库系统中生成属于该用户的Scheme (可以理解为所有属于该用户的表,视图....等对象的集合).该用户可以将对这些对象的访问权限赋予其它的系统用户.3.该用户用sqlplus登录后,以下命令可以看到该用户的权限(该部分取自于CNOUG网站):本用户读取其他用户对象的权限:select * from user_tab_privs;本用户所拥有的系统权限:select * from user_sys_privs;ORACLE数据库用户与权限管理ORACLE是多用户系统,它允许许多用户共享系统资源。
为了保证数据库系统的安全,数据库管理系统配置了良好的安全机制。
2. 1 ORACLE数据库安全策略建立系统级的安全保证系统级特权是通过授予用户系统级的权利来实现,系统级的权利(系统特权)包括:建立表空间、建立用户、修改用户的权利、删除用户等。
系统特权可授予用户,也可以随时回收。
ORACLE系统特权有80多种。
建立对象级的安全保证对象级特权通过授予用户对数据库中特定的表、视图、序列等进行操作(查询、增、删改)的权利来实现。
oracle创建⽤户、创建表空间、授权、建表的完整过程1.⾸先以sysdba的⾝份登录oracle conn /as sysdba 查询⽤户: select username from dba_users; 查询表空间 select username, default_tablespace from dba_users where username='⽤户名‘; 查询数据⽂件 select file_name, tablespace_name from dba_data_files;2.然后就可以来创建⽤户. create user ⽤户名 identified by 密码;3.修改⽤户的密码 alter user ⽤户名 identified by 新密码;4.创建⼀个表空间 create tablespace 表空间名 datafile '空间物理存储路径(f:\ts_zzg\zzg_data.dbf后缀随意)' size ⼤⼩(200M);5.将表空间分配给⽤户 alter user ⽤户名 default tablespace 表空间名;6.为⽤户分配权限 grant create session,create table,create view,create sequence,unlimited tablespace to ⽤户名; grant all privileges to ⽤户名;(全部权限)7.查看所有⽤户所在的表空间 select username,default_tablespace from dba_users;8.查询⽤户所具有的权限 select *from session_privs;9.删除⽤户及其相关对象 drop user ⽤户名;。
在Oracle中创建新⽤户,并且赋予该⽤户查看其他⽤户视图的权限在Oracle中创建新⽤户, 并且赋予该⽤户查看其他⽤户视图的权限1. 需求提出在HIS与第三⽅系统进⾏集成时,某第三⽅系统需要访问HIS数据库的视图⽽⾮全部的数据库表。
HIS的数据库为Oracle, 因此需要在Oracle中在原有⽤户的基础上,再增加⼀个⽤户,该⽤户仅能查看HIS中为其开放的视图。
这也是为了系统之间的安全考虑的。
2. 解决⽅案经过技术查阅,找到的解决⽅案如下:(1)以system⽤户登录oracle数据库.(2)创建⽤户并且为⽤户赋予查看视图的权限.这⾥假设要创建⼀个tester⽤户,登录密码为:“123456”.HIS需要开放的视图是在原来⽤户 outpatient下的,视图名称为:v_daily_charge.此时,应该撰写的SQL为:--01: 创建tester⽤户,并且初始密码为123456.create user tester identified by "123456";--02: 赋予该⽤户登录数据库的权限.grant create session to tester;--03: 赋予该⽤户查看outpatient下的视图v_daily_charge的权限.grant select on outpatient.v_daily_charge to tester;注意:在运⾏以上第三条SQL的时候,oracle数据库有可能会报错。
“ORA-01720: 不存在对 emergency.t_cost表的授权选项。
”经过研究,出错的原因应该是,tester⽤户要访问outpatient⽤户的视图,该视图不仅会查阅outpatient⽤户下的某些表,如t_user, t_dept表,⽽且还访问了其他⽤户的表,如emergency⽤户下的t_cost表。
为了避免以上的错误,就需要在为tester⽤户赋予查看outpatient的视图权限前,先将outpatient视图中需要访问到的emergency⽤户下的表的权限开放给outpatient⽤户。
一、创建表空间及用户并授权1:创建临时表空间create temporary tablespace user_temptempfile 'Q:\oracle\product\10.2.0\oradata\Test\xyrj_temp.dbf'size 50mautoextend onnext 50m maxsize 20480mextent management local;2:创建数据表空间create tablespace user_dataloggingdatafile 'Q:\oracle\product\10.2.0\oradata\Test\xyrj_data.dbf'size 50mautoextend onnext 50m maxsize 20480mextent management local;第3步:创建用户并指定表空间create user username identified by passworddefault tablespace user_datatemporary tablespace user_temp;第4步:给用户授予权限grant connect,resource,dba to username;第二部分:删除用户及表空间//删除用户以及用户所有的对象drop user zfmi cascade;//cascade参数是级联删除该用户所有对象,经常遇到如用户有对象而未加此参数则用户删不了的问题,所以习惯性的加此参数//删除表空间前提:删除表空间之前要确认该表空间没有被其他用户使用之后再做删除drop tablespace zfmi including contents and datafiles cascade onstraints;//including contents 删除表空间中的内容,如果删除表空间之前表空间中有内容,而未加此参数,表空间删不掉,所以习惯性的加此参数//including datafiles 删除表空间中的数据文件//cascade constraints 同时删除tablespace中表的外键参照二、oracle数据库的导入和导出下面介绍的是导入导出的实例,向导入导出看实例基本上就可以完成,因为导入导出很简单。
Oracle 创建表空间、创建用户以及授权、查看权限一、创建临时表空间# sqlplus / as sysdba;sql> CREATE TEMPORARY TABLESPACE test_tempTEMPFILE '/opt/oradata/test_temp.dbf'SIZE 32MAUTOEXTEND ONNEXT 32M MAXSIZE 2048MEXTENT MANAGEMENT LOCAL;二、创建用户表空间sql> CREATE TABLESPACE test_dataLOGGINGDATAFILE '/opt/oradata/test_data.dbf'SIZE 32MAUTOEXTEND ONNEXT 32M MAXSIZE 2048MEXTENT MANAGEMENT LOCAL;sql> select tablespace_name,block_size,extent_management,segment_space_managementfrom dba_tablespaceswhere tablespce_name like 'USER%';三、还原表空间sql> create undo tablespace user01_undodatafile '/u01/oracle/app/oracle/user01_undo.dbf'size 20M;sql> select tablespace_name,block_size,extent_management,segment_space_management from dba_tablespacesfrom tablespace_name like 'user01_%';sql> select tablespace_name,status,contentsfrom dba_tablespacesfrom tablespace_name like 'user01_%';四、创建用户并制定表空间sql> CREATE USER username IDENTIFIED BY passwordDEFAULT TABLESPACE TEST_DATATEMPORARY TABLESPACE TEST_TEMP;sql> GRANT role TO username;五、查看所有用户sql> SELECT * FROM DBA_USERS;sql> SELECT * FROM ALL_USERS;sql> SELECT * FROM USER_USERS;六、查看用户对象或角色权限sql> SELECT * FROM DBA_TAB_PRIVS;sql> SELECT * FROM ALL_TAB_PRIVS;sql> SELECT * FROM USER_TAB_PRIVS;七、查看所有角色sql> SELECT * FROM DBA_ROLES;八、查看用户或角色所拥有的角色sql> SELECT * FROM DBA_ROLE_PRIVS;sql> SELECT * FROM USER_ROLE_PRIVS;九、表空间脱机sql> select tablespace_name,status,contentsfrom dba_tablespaceswhere tablespce_name like 'user_%';sql> col name for a55sql> select file#,name,statusfrom v$datafilewhere file# >=8;设置脱机状态sql> alter tablespace user01 offline;sql> select tablespace_name,status,contents from dba_tablespaceswhere tablespce_name like 'user01_%'; sql> select file#,name,statusfrom v$datafilewhere file# >= 8;设置联机状态sql> alter tablespace user01 online;十一、只读表空间设置只读表空间sql> alter tablespace user01 read only;sql> select tablespce_name,status,contents from dba_tablespaceswhere tablespace_name like 'user_%';可读可写sql> alter tablespace user01 read write;sql> select tablespace_name,status,contentsfrom dba_tablespacewhere tablespace_name like 'user%';十二、改变表空间的存储设置sql> alter tablespace user01 minimum extent 100K;sql> alter tablespace user01default storage ( initial 100 k next 100 k maxextents 200);sql> set line 120sql> col tablespace_name for a15sql> select tablespace_name,initial_extent,next_extent,max_extents,pct_increase,min_extentsfrom dba_tablespaceswhere tablespace_name like 'user01%';十三、重置表空间大小sql> col file_name for a40sql> set line 100sql> col tablespace_name for a15sql> select file_id,tablespace_name,file_name,autoextensible from dba_data_fileswhere file_id >= 8order by file_id;sql> alter database datafile' ' autoextend onnext 1M;sql> select file_id,tablespace_name,file_name,autoextensiblefrom dba_data_fileswhere file_id >= 8order by file_id;十四、手工重置数据文件的大小sql> select file_id,file_name,tablespace_name,bytes/(1024*1024) MBfrom dba_data_fileswhere tablespace_name LIKE 'USERS01%'order by tablespace_name;sql> alter database datafile '/u01/oracle/app/oracle/oradata/db243/use01.dbf' resize 50M;sql> select file_id,file_name,tablespace_name,bytes/(1024*1024)MBfrom dba_data_fileswhere tablespace_name like '%USE%'order by tablespace_name;sql> alter tablespace use01add datafile '/u01/oracle/app/oracle/oradata/db243/use01_a.dbf'size 30M;sql> select file_id,file_name,tablespace_name,bytes/(1024*1024)MBfrom dba_data_fileswhere tablespace_name like '%USE%'order by tablespace_name;十五、移动数据文件的方法(一)、移动可以脱机的表空间# sqlplus / as sysdbasql> col file_name for a45sql> set line 120#查看数据库中数据文件的分布情况sql> select file_id,file_name,tablespace_name from dba_data_fileswhere file_name like '%ORADATA%'order by file_name;# 查看数据库表空间的状态sql> select tablespace_name,status,contents from dba_tablespaceswhere tablespace_name not like '%USE%';# 使表空间脱机sql> alter tablespace use01 offline;# 查看更改有没有成功sql> select tablespace_name,status,contentsfrom dba_tablespaceswhere tablespace_name not like '%USE%';# CP 数据文件# cp /u01/oracle/app/oracle/oradata/db243/use01.dbf /u01/oracle/app/oradata#使用命令来重新命名表空间所对应的数据文件名sql> alter tablespace use01 renamedatafile '/u01/oracle/app/oracle/oradata/db243/use01.dbf'to '/u01/oracle/app/oradata/use01.dbf';#表空间联机sql> alter tablespace use01 online;(二)、移动系统表空间Sql> shutdown immediatesql> startup mountsql> host cp /u01/oracle/app/oracle/oradata/db243/system01.dbf /u01/oracle/app/oradatasql> alter database renamefile '/u01/oracle/app/oracle/oradata/sb243/system01.dbf'to '/u01/oracle/app/oradata/system01.dbf';sql> alter database open;sql> select tablespace_name,status,contentsfrom dba_tablespaces;sql> select file_id,file_name,tablespace_namefrom dba_data_files;十六、迁移数据字典和本地管理的表空间Sql> connect sys/wuzihao as sysdba;sql> show user;#查看哪些表空间是数据字典管理的sql> select tablespace_name,block_size,extent_management,segment_space_management,min_extentsfrom dba_tablespaceswhere tablespace_name like '%USE%';#将数据字典管理的表空间迁移到本地管理的表空间sql> execute dbms_space_admin.tablespace_migrate_to_local('use01');#将本地管理的表空间迁移到数据字典管理的表空间sql> execute dbms_space_admin.tablespace_migrate_from_local('use01');十七、删除表空间#查询所有创建的表空间sql> select file_id,file_name,tablespace_namefrom dba_data_fileswhere file_id > 5order by file_id;#控制文件指向的数据文件指针删除sql> drop tablespace use01;#操作系统文件也删除sql> drop tablespace use01 including contents and datafiles;#临时表空间sql> col file for a50sql> col tablespace for a15sql> set line 120#查询临时表空间sql> select f.file#,t.ts#, “File”, “Tablespace”from v$tempfile f,v$tablspace twhere f.ts# = t.ts#;#删除临时表空间sql>drop tablespace use01_temp including contents and datafiles;十八、利用OMF来管理表空间# sqlplus / as sysdba#设定数据文件存放的目录sql> alter system setdb_create_file_dest = '/u01/oracle/app/oradata';sql> create tablespace test01;sql> select file_id,file_name,tablespace_name,bytes/(1024*1024)MBfrom dba_data_files;sql> alter tablespace test01 add datafile 50M;十九、应用实例#查询所有的表空间信息sql> select file_id,file_name,tablespace_name,bytes/(1024*1024)MB from dba_data_files;#查看数据库表空间是数据字典管理,还是本地管理sql> select tablespace_name,block_size,extent_management,segment_space_management,min_extentsfrom dba_tablespaces;#查询所有的临时表空间sq l> select f.file#,t.ts#, “File”, “Tablespace”from v$tempfile f,v$tablespace twhere f.ts# = t.ts#;#创建数据表空间sql> create tablespace pioneer_datadatafile '/u01/oracle/app/oradata/pioneer_data.dbf'size 100 Mextent management localuniform size 1M;#创建索引表空间sql> create tablespace pioneer_indexdatafile '/u01/oracle/app/oradata/pionner_index.dbf'size 100Mextent management localuniform size 1M;#创建还原表空间sql> create tablespce pioneer_undodatafile '/u01/oracle/app/oradata/pioneer_undo.dbf'size 100Mextent management local;#创建临时表空间sql> create temporary tablespace pioneer_tempdatafile '/u01/oracle/app/oradata/pioneer_temp.dbf'size 50Mextent management localuniform size 2M;#验证表空间是否创建成功sql> select file_id,file_name,tablespace_name,bytes/(1024*1024)MB from dba_tablespaceswhere tablespace_name like 'PION%';#验证临时表空间创建是否成功sql> select f.file#,t.ts#, “File”, “Tablespace”from v$tempfile f,v$tablespace twhere f.ts# = t.ts#and like 'PION%';#验证四个表空间是否本地管理,sql> select tablespace_name,block_size,extent_management, segment_space_management,min_extents,contents from dba_tablespaceswhere tablespace_name like 'PION%';。
ORACLE创建表空间、创建⽤户、更改⽤户默认表空间以及授权、查看权限(修改表空间⼤⼩)查询表空间路径:select * from dba_data_files删除表空间:正常情况下,删除表空间的正确⽅法为:DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;实例:1、CREATE TABLESPACE UCITDB_dataLOGGINGDATAFILE '/home/app/oracle/app/oracle/oradata/UCITDB/UCITDB_DATA01.DBF'SIZE 32MAUTOEXTEND ONNEXT 32M MAXSIZE 2048MEXTENT MANAGEMENT LOCAL;创建表空间UCITDB_data:⽤户表空间不限制表空间⼤⼩⽤:maxsize unlimited2、CREATE USER UCITDBA IDENTIFIED BY 111111DEFAULT TABLESPACE UCITDB_data;创建帐号并设置默认表空间UCITDBA:创建的帐号名111111:为设置帐号的密码修改⽤户默认表空间:alter user dbcenter default tablespace DBCENTER_DATA3、grant dba TO UCITDBA给⽤户授予权限dba:⽤户组UCITDBA:⽤户创建临时表空间:CREATE TEMPORARY TABLESPACE test_tempTEMPFILE 'C:\oracle\product\10.1.0\oradata\orcl\test_temp01.dbf'SIZE 32MAUTOEXTEND ONNEXT 32M MAXSIZE 2048MEXTENT MANAGEMENT LOCAL;创建⽤户表空间:CREATE TABLESPACE test_dataLOGGINGDATAFILE 'C:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\TEST_DATA01.DBF'SIZE 32MAUTOEXTEND ONNEXT 32M MAXSIZE 2048MEXTENT MANAGEMENT LOCAL;创建⽤户并制定表空间:CREATE USER username IDENTIFIED BY passwordDEFAULT TABLESPACE TEST_DATATEMPORARY TABLESPACE TEST_TEMP;给⽤户授予权限:GRANTCREATE 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 TABLETO username;将role这个⾓⾊授与username,也就是说,使username这个⽤户可以管理和使⽤role所拥有的资源GRANT role TO username;-----------------------------------------------查看⽤户权限---------------------------------------------------------查看所有⽤户:SELECT * FROM DBA_USERS;SELECT * FROM ALL_USERS;SELECT * FROM USER_USERS;查看⽤户系统权限:SELECT * FROM DBA_SYS_PRIVS;SELECT * FROM USER_SYS_PRIVS;查看⽤户对象或⾓⾊权限:SELECT * FROM DBA_TAB_PRIVS;SELECT * FROM ALL_TAB_PRIVS;SELECT * FROM USER_TAB_PRIVS;查看所有⾓⾊:SELECT * FROM DBA_ROLES;查看⽤户或⾓⾊所拥有的⾓⾊:SELECT * FROM DBA_ROLE_PRIVS;SELECT * FROM USER_ROLE_PRIVS;------遇到no privileges on tablespace 'tablespace 'alter user userquota 10M[unlimited] on tablespace;oracle表空间增加和修改数据⽂件1、增加数据⽂件alter tablespace tablespace_name add datafile '/usr/app/oracle/oradata/dbm/UCITDB_DATA01.DBF' size 10240M;2、⼿⼯改变数据⽂件尺⼨alter database datafile '/usr/app/oracle/oradata/dbm/UCITDB_DATA01.DBF' resize 2048M;3、容许数据⽂件⾃动扩展alter database datafile '/usr/app/oracle/oradata/dbm/UCITDB_DATA01.DBF' autoextend on next 200M maxsize 30G; (解决oracle:ora 00017 01659错误)。
Oracle创建用户并给用户授权查询指定表或视图的权限用sys账户登录数据库进行如下操作:CREATE USER NORTHBOUND IDENTIFIED BY NORTHBOUNDDEFAULT TABLESPACE "TBS_DNINMSV31"TEMPORARY TABLESPACE "TEMP2"QUOTA UNLIMITED ON "TBS_DNINMSV31";GRANT "CONNECT" TO NORTHBOUND;ALTER USER NORTHBOUND DEFAULT ROLE NONE;GRANT CREATE SESSION TO NORTHBOUND;GRANT SELECT ON "DNINMSV31"."V_DNDEVICE" TO NORTHBOUND;GRANT SELECT ON "DNINMSV31"."V_DNSUBNE" TO NORTHBOUND;GRANT SELECT ON "DNINMSV31"."V_DNPACKAGE" TO NORTHBOUND;GRANT SELECT ON "DNINMSV31"."V_DNPORT" TO NORTHBOUND;【注】:在用NORTHBOUND登录后查询的时候要在视图前加上DNINMSV31,否则会报表或视图不存在。
例如:select * from DNINMSV31.V_DNDEVICE; --可以正常执行select * from DNINMSV31.TB_DEVICE where rownum<5; --执行的时候会报表或视图不存在--------------------------------------------------------------------------------------------------GRANT debug any procedure, debug connect session TO hnckb;grant select on sys.dba_pending_transactions to hnckb;grant CREATE VIEW,CREA TE JOB,CREATE SYNONYM to hnckb;grant CONNECT,RESOURCE to hnckb;1.标准角色CONNECTRESOURCE2.系统权限CREATE VIEWCREATE DATABASE LINKCREATE JOBCREATE SYNONYMUNLIMITED TABLESPACE更改定额命令:ALTER USER 名称QUOTA 0 ON 表空间名ALTER USER 名字QUOTA (数值)K|M|UNLIMITED ON 表空间名;使用方法:A、控制用户数据增长B、当用户拥有一定的数据,而管理员不想让他在增加新的数据的时候。
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 USERSsys 要查看dba_all_tables,ALL_ALL_TABLES才能查看到test 用户的表。
oracle11g用plsqldeveloper创建表空间创建用户以及赋予
权限
首先用管理员用户登录我的是system 密码是:password
数据库选本地的我的是iasdb (iasdb和orcl用的比较多吧)连接为选sysdba
打开 plsql ----文件--新建sql窗口
create tablespace hsw
datafile 'D:\sql\oracle\oracledata\hsw.dbf' size 50M ----感觉这个像是初始表空间大小
default storage(initial 1M
next 1M -----------这两行写的应该是自动增加表空间大小吧
minextents 1
maxextents unlimited
pctincrease 0); ----first 创建表空间hsw
新建过以后选中--按F8
然后文件--新建--用户
在一般里边输入名称(也就是用户名)
口令(也就是密码)
默认表空间(有一个下拉按钮选择刚创建好的那个表空间名称)临时表空间(这个一般选temp)
概要文件不用选
然后点角色权限
在角色那一列分别输入dba
connect
resource
这三个权限然后点应用就可以了。
racl e用户创建及权限设置权限:create sessioncreate tableunlimited tablespaceconnectresourcedba例:#sqlplus /nologSQL> conn / as sysdba;SQL>create user username identified by passwordSQL> grant dba to username;SQL> conn username/passwordSQL> select * from user_sys_privs;我们将从创建Oracle用户权限表开始谈起,然后讲解登陆等一般性动作,使大家对Oracle 用户权限表有个深入的了解。
一、创建sys;//系统管理员,拥有最高权限system;//本地管理员,次高权限scott;//普通用户,密码默认为tiger,默认未解锁二、登陆sqlplus / as sysdba;//登陆sys帐户sqlplus sys as sysdba;//同上sqlplus scott/tiger;//登陆普通用户scott三、管理用户create user zhangsan;//在管理员帐户下,创建用户zhangsanalert user scott identified by tiger;//修改密码四,授予权限1、默认的普通用户scott默认未解锁,不能进行那个使用,新建的用户也没有任何权限,必须授予权限/*管理员授权*/grant create session to zhangsan;//授予zhangsan用户创建session的权限,即登陆权限grant unlimited session to zhangsan;//授予zhangsan用户使用表空间的权限grant create table to zhangsan;//授予创建表的权限grante drop table to zhangsan;//授予删除表的权限grant insert table to zhangsan;//插入表的权限grant update table to zhangsan;//修改表的权限grant all to public;//这条比较重要,授予所有权限(all)给所有用户(public)2、oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的,需要互相授权/*oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的*/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;//授予修改表的权限grant insert(id) on tablename to zhangsan;grant update(id) on tablename to zhangsan;//授予对指定表特定字段的插入和修改权限,注意,只能是insert和updategrant alert all table to zhangsan;//授予zhangsan用户alert任意表的权限五、撤销权限基本语法同grant,关键字为revoke六、查看权限select * from user_sys_privs;//查看当前用户所有权限select * from user_tab_privs;//查看所用用户对表的权限七、操作表的用户的表/*需要在表名前加上用户名,如下*/select * from zhangsan.tablename八、权限传递即用户A将权限授予B,B可以将操作的权限再授予C,命令如下:grant alert table on tablename to zhangsan with admin option;//关键字with admin option grant alert table on tablename to zhangsan with grant option;//关键字with grant option效果和admin类似九、角色角色即权限的集合,可以把一个角色授予给用户create role myrole;//创建角色grant create session to myrole;//将创建session的权限授予myrolegrant myrole to zhangsan;//授予zhangsan用户myrole的角色drop role myrole;删除角色/*但是有些权限是不能授予给角色的,比如unlimited tablespace和any关键字*/。
Oracle数据库创建表空间、建立用户、授权、还原备份创建用户一般分四步:第一步:创建临时表空间第二步:创建数据表空间第三步:创建用户并制定表空间第四步:给用户授予权限--Oracle创建临时表空间如果没有指定的临时表空间,则可以不建CREATE TEMPORARY TABLESPACE DB_TEMPTEMPFILE'E:\Oa Data\OA_TEMP.DBF'SIZE32MAUTOEXTEND ONNEXT32M MAXSIZE UNLIMITEDEXTENT MANAGEMENT LOCAL;--Oracle创建表空间如果没有指定的表空间,则可以不建CREATE TABLESPACE DB_DATALOGGINGDATAFILE'E:\Oa Data\OA_DATA.DBF'SIZE32MAUTOEXTEND ONNEXT32M MAXSIZE UNLIMITEDEXTENT MANAGEMENT LOCAL;--创建用户“oa”,密码“oa”CREATE USER OA IDENTIFIED BY OAACCOUNT UNLOCKDEFAULT TABLESPACE DB_DATATEMPORARY TABLESPACE DB_TEMP;--授权GRANT CONNECT,RESOURCE,DBA TO OA;--导入dmp文件到数据库这个必须用命令窗口来执行,不是SQL语句--用户名就是要导入的用户,要导入给A,那用户名就是A imp 用户名/密码@数据库实例名file=文件地址full=y ignore=y; exp system/123456@orcl file=oa.dmp owner=oa full=y;使用expdp和impdp时应该注重的事项:1、exp和imp是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。
2、expdp和impdp是服务端的工具程序,他们只能在oracle服务端使用,不能在客户端使用。
/*创建临时表空间TS_TEMP01*//*创建临时表空间TS_DA TA01 */create temporary tablespace TS_TEMP01tempfile 'D:\oracle\product\10.2.0\oradata\ynsp\TS_TEMP01.dbf' --与安装路径相关size 50mautoextend onnext 50m maxsize 20480mextent management local;/*创建数据表空间TS_DATA01 */create tablespace TS_DA TA01loggingdatafile 'D:\oracle\product\10.2.0\oradata\ynsp\TS_DATA01.dbf' --与安装路径相关size 50mautoextend onnext 50m maxsize 20480mextent management local;/*创建用户edata并绑定表空间*/create user edata identified by sa123 --创建用户edata及密码sa123default tablespace TS_DATA01 --给用户绑定默认表空间temporary tablespace TS_TEMP01;--给用户绑定临时表空间/*授予用户权限*/grant connect,resource,dba,create any view,select any table,create any procedure,unlimited tablespace to edata;/*删除某用户及表空间的步骤*/--步骤一:删除userdrop user ×× cascade--说明:删除了user,只是删除了该user下的schema objects,是不会删除相应的tablespace 的。
Oracle中⽤户、权限、⾓⾊的创建1、创建⽤户、修改密码、删除⽤户在 oracle 中要创建⼀个新的⽤户使⽤ create user 语句,⼀般是具有 dba(数据库管理员sysdba)的权限才能使⽤。
问题:创建好的⽤户⽆法正常登录?oracle 中⽤户建⽴后是⽆法正常登录的,只有在数据库管理员(DBA)对⽤户分配相应的权限后,⽤户才可以登录。
1)创建⽤户语法结构:create user ⽤户名 identified by 密码【default tablespace 表空间名】【temporary tablespace temp】建议创建⽤户的时候指定表空间。
2)表空间创建表空间create tablespace temp datafile 'E:\oracle_tablespace\englishapp\temp.dbf' size 150M autoextend on next 5M maxsize 3000M;--⾃动增长/*重新给⽤户PRDFPSRV指定默认表空间,必须是dba(数据库管理员sysdba)⽤户登录操作*/alter user ⽤户 default tablespace 表空间;//登录⽤户后,查看表当前所属表空间select table_name,tablespace_name from user_tables;//登录⽤户后,批量修改当前登录⽤户下的表存放的表空间,将以下查询出的语句复制出来再执⾏SELECT 'alter table '||TABLE_NAME||' move tablespace 正确的空间名;' FROM USER_TABLES WHERE TABLESPACE_NAME = '错误的表空间名'//对⽤户写的表插⼊数据显⽰ORA-01950对表空间XXX⽆权限;解决⽅案2种,如下:解决⽅案1,登录dba(数据库管理员sysdba)⽤户,执⾏:alter user ⽤户名 quota unlimited on 表空间;解决⽅案2,登录表空间对应的本⾝⽤户,执⾏:grant unlimited tablespace to ⽤户名;//删除表空间与表空间⽂件(注意:如果在创建表空间的时候带有双引号,则删除的时候也要带上)DROP TABLESPACE temp INCLUDING CONTENTS AND DATAFILES;前提:删除表空间之前要确认该表空间没有被其他⽤户使⽤之后再做删除drop tablespace temp including contents and datafiles cascade onstraints;//including contents删除表空间中的内容,如果删除表空间之前表空间中有内容,⽽未加此参数,表空间删不掉,所以习惯性的加此参数//including datafiles删除表空间中的数据⽂件//cascade constraints同时删除tablespace中表的外键参照3)给⽤户修改密码概述:⼀般以 dba 的⾝份(管理员⽤户sysdba),如果⽤其它⽤户去删除⽤户则需要具有 alter user权限。
oracle rac11g 基本操作
以下是Oracle RAC 11g的一些基本操作:
1. 安装Oracle RAC 11g:根据Oracle官方文档和安装指南,按照正确的步骤和要求进行Oracle RAC 11g的安装。
2. 创建集群:使用Oracle Clusterware软件创建一个集群,在集群中安装和配置Oracle数据库节点。
3. 创建ASM实例:配置Automatic Storage Management(ASM)实例,用于管理集群中的存储。
4. 创建和配置Grid Infrastructure:使用Oracle Grid Infrastructure(GI)在集群中创建和配置资源,如公共存储和虚拟IP地址。
5. 创建数据库实例:使用Database Configuration Assistant(DBCA)创建数据库实例,并根据需要选择相关参数和配置。
6. 配置监听器:配置监听器,使其能够接收和处理来自客户端的数据库连接请求。
7. 管理和监控集群:使用Oracle Enterprise Manager(EM)或命令行工具如
crsctl和sqlplus,对集群进行管理和监控。
8. 备份和恢复:使用数据库备份和恢复工具,运行备份策略来保护集群中的数据。
9. 扩展集群:根据需要,添加更多的节点来扩展集群的容量和性能。
10. 故障转移:通过使用Oracle Data Guard和其他容错机制,实现数据库和应用程序的故障转移和高可用性。
这些是Oracle RAC 11g的一些基本操作,根据具体的需求和环境,还可以进行更多的配置和优化。
Oraclec创建用户一、命令行创建用户具体步骤如下:1.以管理员身份登录系统并创建一个新的表空间,操作如下:操作如下:2.Next 5M maxsize 100M ;----每次扩大5M,但最大为100M3.Temporary tablespace test1_temp; ----设置临时表空间为test1_temp4.操作如下5.操作如下6.最后提交即可。
Commit二、表空间的增删改查1.2.如下操作,其中标示出来的路径即为查询到的要更改的表空间的具体路径,将该路径加到语句2中的单引号处即可。
3.4.四、权限的设置1.权限的分类:系统权限:系统规定用户使用数据库的权限。
(系统权限是对用户而言)。
实体权限:某种权限用户对其它用户的表或视图的存取权限。
(是针对表或视图而言的)。
2.系统权限管理DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
RESOURCE: 拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
CONNECT: 拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。
对于普通用户:授予connect, resource权限。
对于DBA管理用户:授予connect,resource, dba权限。
3.系统权限授权命令及用户管理。
[系统权限只能由DBA用户授出:sys, system(最开始只能是这两个用户)]授权命令:SQL> grant connect, resource, dba to 用户名1 [,用户名2]...;[普通用户通过授权可以具有与system相同的用户权限,但永远不能达到与sys 用户相同的权限,system用户的权限也可以被回收。
]例:SQL> connect system/managerSQL> Create user user50 identified by user50;SQL> grant connect, resource to user50;查询用户拥有哪里权限:SQL> select * from dba_role_privs;SQL> select * from dba_sys_privs;SQL> select * from role_sys_privs;删除用户:SQL> drop user 用户名cascade; //加上cascade则将用户连同其创建的东西全部删除。
racl e用户创建及权限设置
权限:
create session
create table
unlimited tablespace
connect
resource
dba
例:
#sqlplus /nolog
SQL> conn / as sysdba;
SQL>create user username identified by password
SQL> grant dba to username;
SQL> conn username/password
SQL> select * from user_sys_privs;
我们将从创建Oracle用户权限表开始谈起,然后讲解登陆等一般性动作,使大家对Oracle 用户权限表有个深入的了解。
一、创建
sys;//系统管理员,拥有最高权限
system;//本地管理员,次高权限
scott;//普通用户,密码默认为tiger,默认未解锁
二、登陆
sqlplus / as sysdba;//登陆sys帐户
sqlplus sys as sysdba;//同上
sqlplus scott/tiger;//登陆普通用户scott
三、管理用户
create user zhangsan;//在管理员帐户下,创建用户zhangsan
alert user scott identified by tiger;//修改密码
四,授予权限
1、默认的普通用户scott默认未解锁,不能进行那个使用,新建的用户也没有任何权限,必须授予权限
/*管理员授权*/
grant create session to zhangsan;//授予zhangsan用户创建session的权限,即登陆权限grant unlimited session to zhangsan;//授予zhangsan用户使用表空间的权限
grant create table to zhangsan;//授予创建表的权限
grante drop table to zhangsan;//授予删除表的权限
grant insert table to zhangsan;//插入表的权限
grant update table to zhangsan;//修改表的权限
grant all to public;//这条比较重要,授予所有权限(all)给所有用户(public)
2、oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的,需要互相授权
/*oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的*/
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;//授予修改表的权限
grant insert(id) on tablename to zhangsan;
grant update(id) on tablename to zhangsan;//授予对指定表特定字段的插入和修改权限,注意,只能是insert和update
grant alert all table to zhangsan;//授予zhangsan用户alert任意表的权限
五、撤销权限
基本语法同grant,关键字为revoke
六、查看权限
select * from user_sys_privs;//查看当前用户所有权限
select * from user_tab_privs;//查看所用用户对表的权限
七、操作表的用户的表
/*需要在表名前加上用户名,如下*/
select * from zhangsan.tablename
八、权限传递
即用户A将权限授予B,B可以将操作的权限再授予C,命令如下:
grant alert table on tablename to zhangsan with admin option;//关键字with admin option grant alert table on tablename to zhangsan with grant option;//关键字with grant option效果和admin类似
九、角色
角色即权限的集合,可以把一个角色授予给用户
create role myrole;//创建角色
grant create session to myrole;//将创建session的权限授予myrole
grant myrole to zhangsan;//授予zhangsan用户myrole的角色
drop role myrole;删除角色
/*但是有些权限是不能授予给角色的,比如unlimited tablespace和any关键字*/。