搜档网
当前位置:搜档网 › 批量建Oracle用户

批量建Oracle用户

批量建Oracle用户
批量建Oracle用户

需求分析:

1.一次性批量创建100个左右用户;

2.每个用户拥有独立的表空间;

3.权限方面,既要满足教学上机练习的需求,又要严格限制权限,以防初学者对系统

造成意外破坏。

4.对于服务器资源,作以下阐述。由2013下半年实验总结,监测到的数据:数据库

会话数的峰值:300~320,此时由第三方软件测试数据显示,服务器资源使用达到80%左右。作为学习数据库服务器,应该尽可能使用服务器资源,最大可能的提供服务,以供教学。

解决方案:

1.概要文件:概要文件用于口令和资源限制(由13年12月2日那次实验吸取教

训,对与口令,最好不好限制尝试登录次数等等,一旦出问题,无论怎么修改概要文件都无济于事,再说,口令限制也是为了防御外来攻击,作为学习数据库没必要那么严格控制)。以下只做资源限制(以下数据参考来自Oracle DBA 培训教程-何明-清华大学出版社,数据有待进一步测试验证)

A.会话

资源:服务器最大可提供300个对外会话数(下次实验可以使用Spotlight on Oracle 9.6这款软件检测物理连接数是多少)。

需求:100个左右用户同时连接服务器。

结论:每个用户的最大会话数限制在三个。

B.CPU占用时间

防止一个会话消耗过多处理器时间,每个会话所使用的处理器时间不能超过

16800个1%S(168S)。

C.数据块

防止用户狂搞数据(如笛卡尔积)产生大量输入输出,每个会话最多的逻辑阅读量为23688个数据块。

D.挂机时间

每个用户最多挂3个小时

E.空闲时间

防止长期不干活,占用资源,超过28分钟不干活就踢出系统并回滚该用户没有提交的事务。

2.角色:教学过程中,学生需要用到大量权限,在数据库中进行练习,以往经验可

知,权限授予要慎重,以免意外破外系统,导致实验无法进行。为了统一管理,创建一个ORACLE_STUDENT_ROLE角色;

经过裴学长一系列测试,决定赋予学生用户以下权限:

将要创建角色系统预定义角色系统权限

CONNECT CREATE SESSION

创建会话

RESOURCE CREATE CLUSTER

创建簇

RESOURCE CREATE INDEXTYPE

创建索引类型

RESOURCE

REATE OPERATOR

创建控制器

RESOURCE

REATE PROCEDURE

创建过程

RESOURCE

REATE SEQUENCE

创建序列

ORACLE_STUDENT_ROLE RESOURCE

REATE TABLE

创建表

RESOURCE

REATE TRIGGER

创建触发器

RESOURCE CREATE TYPE

创建复合类型

CREATE USER

创建用户

CREATE ROLE

创建角色

CREATE VIEW

创建视图

EBUG ANY

PROCEDUREDEBUG

CONNECT SESSION

调试PL/SQL用

DROP USER 删除用户

删除用户(由于教学需要,删除用户这个权限不得不给,但是存在一个问题,一个学生用户不仅可以删除自己创建的用户,还可以删除其他人,对此我的想法是写一个DDL事件触发器,这样,对他们的行为加以限制,在系统级的操作(如

CREATE,ALTER,DROP)都加以审核。

3.表空间

这个是教学数据库,所有数据量不会像生产数据库那么大,默认表空间(缺省表空间)给1MB,临时表空间给2M(排序用),其实1M还是2M都无所谓,反正已经满足需求了。

实现步骤明细:

总体思路,不用写存储过程,函数,包等等,只利用SQL*PLUS工具,使用SQL(父SQL)生成SQL(子SQL)。本质上讲:使用SQL(父SQL)生产SQL(子SQL)就是将一条SQL语句的输出作为另一条SQL语句的输入。

编写能够生成更多SQL(父SQL)代码的SQL(子SQL)很容易。

First:编写生成SQL(子SQL)的SQL(父SQL);

Second:创建一个为SQL后缀名的文件,用于捕获第一个SQL(父SQL)脚本的输

出;

Then:执行这个生产SQL(父SQL)代码;

Finally:执行生成的SQL代码的脚本文件。

由于每个批量的过程都使用相同得方法,为了不赘述,这里以批量

授权为例:

第一步:写好你的SQL(父SQL),注意字符拼接很有讲究,不要错误。

SELECT 'GRANT ORACLE_STUDENT_ROLE TO T'||SNO||' with admin

option;' FROM STUDENT; --授权

解释:注意红色单引号,和双竖线||,这是在拼接字符。SNO是表STUDENT的列,

STUDENT里面装的学生的信息。(这个表自己提前建好,数据也要导入,过程不再赘

述,一切字符拼接都是基于这个表之上的);

第二步:在SQL*PLUS中输入spool F:\grant.sql这个路径和名字随便取,后缀

名最好用sql。

第三步:执行你第一步写的SQL(父SQL);

结果如下(sql*plus窗口中):

SQL> SELECT 'GRANT ORACLE_STUDENT_ROLE TO T'||SNO||' with

admin option;' FROM STUDENT;

---------------------华丽的分割线------------------------

GRANT ORACLE_STUDENT_ROLE TO T20100230117 with admin option;

GRANT ORACLE_STUDENT_ROLE TO T20100230122 with admin option;

GRANT ORACLE_STUDENT_ROLE TO T20110230103 with admin option;

GRANT ORACLE_STUDENT_ROLE TO T20110230106 with admin option; ………………………………………………………………………………………..(中间省略)

GRANT ORACLE_STUDENT_ROLE TO T20110230210 with admin option; GRANT ORACLE_STUDENT_ROLE TO T20110230213 with admin option;

---------------------华丽的分割线------------------------

第四步:在SQL*PLUS中输入spool off

打开SQL脚本文件查看如下:

---------------------华丽的分割线------------------------

SQL> SELECT 'GRANT ORACLE_STUDENT_ROLE TO T'||SNO||' with

admin option;' FROM STUDENT;

GRANT ORACLE_STUDENT_ROLE TO T20100230117 with admin option; GRANT ORACLE_STUDENT_ROLE TO T20100230122 with admin option; GRANT ORACLE_STUDENT_ROLE TO T20110230103 with admin option; ………………………………………………………………………………………..(中间省略)

GRANT ORACLE_STUDENT_ROLE TO T20110230210 with admin option; GRANT ORACLE_STUDENT_ROLE TO T20110230213 with admin option;

SQL> spool off

---------------------华丽的分割线------------------------

第五步:删除SQL脚本文件中不必要的行。

相比之下,只有开头和结尾的多余了,把他们去掉即可(还有一种方案是设置

SQL*PLUS的环境变量 :set echo off heading off feedback off;生产假

脱机脚本,可以省去这一步)

第六步:在SQL*PLUS中输入@ F:\grant.sql.批量操作完毕。

以下是具体代码粘上来(以下每句代码按照以上方案操作,即可完成任务):

第一句代码:

create profile TEST_PROF limit --概要文件限制资源

sessions_per_user 3

cpu_per_session 16800

logical_reads_per_session 23688

connect_time 180

idle_time 28;

第二句代码:

create role ORACLE_STUDENT_ROLE; --创建一个角色

第三句代码:

GRANT CONNECT,RESOURCE,create user,create role,CREATE VIEW,

--授权

DEBUG ANY PROCEDURE,

DEBUG CONNECT SESSION,drop user TO ORACLE_STUDENT_ROLE with admin option;

第四句代码:(父SQL)

select 'CREATE TABLESPACE TDATA'||SNO||' DATAFILE

''F:\ORADATA\tdata'||sno||'.dbf '' size 1m extent management local;' from student ; --表空间

第五句代码:(父SQL)

select 'CREATE TEMPORARY TABLESPACE TTEMP'||SNO||' TEMPFILE

''F:\ORADATA\temp'||sno||'.dbf '' size 2m extent management local;' from student ; --表空间

第六句代码:(父SQL)

select 'CREATE USER T'||sno||' IDENTIFIED BY T'||sno||'

DEFAULT TABLESPACE TDATA'||sno --建用户

||' TEMPORARY TABLESPACE TTEMP'||SNO||' QUOTA 1M ON

TDATA'||sno||' ACCOUNT UNLOCK PROFILE TEST_PROF;' FROM STUDENT; 第七句代码:(父SQL)

SELECT 'GRANT ORACLE_STUDENT_ROLE TO T'||SNO||' with admin option;' FROM STUDENT; --授权

创建完成的的数据库对象:

以20110230437 陈恢妹T1123-4 同学为例:

用户名:T20110230437

密码:T20110230437

用户的默认表空间(缺省表空间):TDATA20110230437

用户的临时表空间:TTEMP20110230437

角色为:ORACLE_STUDENT_ROLE.

截图验证:用户拥有的表空间

用户拥有的角色

角色拥有的系统权限:

总结:

显然,即使需要为100位用户运行GRANT命令,也和为一位用户授权没有什么区别。同样,在需要针对数据库中很对对象或用户同时执行某项操作时,只需要改一改前面的例子即可,这个技术虽然不起眼,但却非常有用,值得珍藏。如果说以后有机会从事DBA行业的话,可能会发现在执行自己的例行管理任务时,很多地方都可以用到它。

对于批量的用户管理,我想借鉴UNIX或者LINUX的方式---分组管理,其实像角色,概要文件,这样就利用的类似思想。

创建触发器

create or replace trigger nodrop_user

before--

drop on DATABASE

declare

v_ID integer;

begin

select user_id

into v_ID

from dba_users

where username=UPPER(SYS.DICTIONARY_OBJ_NAME);

if v_ID>86then

RAISE_APPLICATION_ERROR(-20005,'错误消息:不能删除该用户,你只能删除学生创建的用户');

END IF;

END;

oracle创建用户及权限说明文档

Oraclec创建用户 一、命令行创建用户具体步骤如下: 1.以管理员身份登录系统并创建一个新的表空间,操作如下: 操作如下: 2. Next 5M maxsize 100M ;----每次扩大5M,但最大为100M

3. Temporary tablespace test1_temp; ----设置临时表空间为test1_temp 4. 操作如下 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/manager SQL> 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则将用户连同其创建的东西全部删除。 4.给新建的用户分配只有连接以及对某些表和视图的查询权限: oracle授权对视图的查询.docx 5.用户管理: 1)、创建用户的Profile文件 SQL> create profile student limit // student为资源文件名 FAILED_LOGIN_ATTEMPTS 3 //指定锁定用户的登录失败次数 PASSWORD_LOCK_TIME 5 //指定用户被锁定天数 PASSWORD_LIFE_TIME 30 //指定口令可用天数 2)、创建用户 SQL> Create User username Identified by password Default Tablespace tablespace Temporary Tablespace tablespace Profile profile Quota integer/unlimited on tablespace; 6.用户密码过期问题: 首先,查看系统中有哪些用户:

Oracle系统中用户权限的赋予

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_USER 2.当用户建立后,会自动在Oracle数据库系统中生成属于该用户的Scheme (可以理解为所有属于该用户的表,视图....等对象的集合). 该用户可以将对这些对象的访问权限赋予其它的系统用户. 3.该用户用sqlplus登录后,以下命令可以看到该用户的权限(该部分取自于CNOUG网站): 本用户读取其他用户对象的权限: select * from user_tab_privs; 本用户所拥有的系统权限: select * from user_sys_privs; ORACLE数据库用户与权限管理 ORACLE是多用户系统,它允许许多用户共享系统资源。为了保证数据库系统的安全,数据库管理系统配置了良好的安全机制。 2. 1 ORACLE数据库安全策略 建立系统级的安全保证 系统级特权是通过授予用户系统级的权利来实现,系统级的权利(系统特权)包括:建立表空间、建立用户、修改用户的权利、删除用户等。系统特权可授予用户,也可以随时回收。ORACLE系统特权有80多种。 建立对象级的安全保证 对象级特权通过授予用户对数据库中特定的表、视图、序列等进行操作(查询、增、删改)的权利来实现。 建立用户级的安全保证 用户级安全保障通过用户口令和角色机制(一组权利)来实现。引入角色机制的目的是简化对用户的授权与管理。做法是把用户按照其功能分组,为每个用户建立角色,然后把角色分

oracle客户端的安装和用户的创建

1、光驱: /dev/cdrom 2、挂载光驱 1)挂载点:就是一个目录 2) mount /dev/cdrom 挂载点的名称 卸载光驱 umount /dev/cdrom U盘挂载 /dev/mnt mount –t -vfat /dev/mnt /mnt/usb 3、ftp的配置 1)关闭防火墙 service iptables stop; 2) 关闭selinux vi /etc/selinux/config - disabled init 6 3) 启动ftp service vsftpd start 4) 要使用root用户登录ftp vi /etc/vsftpd/ftpusers; vi /etc/vsftpd/user_list; 注释掉root ,因为默认情况下ftp不允许直接向root用户传输文件。 4、软件安装 1)rpm方式 rpm: redhat package management rpm -qa 查询系统中所有以rpm方式安装的软件 -e 卸载软件包 -i 安装软件包 -v 显示提示

-h 显示安装进度 2)源码方式 先编译 ./configure --选项。。 make make install 3) yum方式,必须有yum源(在外网) yum install compat-db 5、定时任务 周期性任务 Crontab -e 编辑任务 Crontab -l 显示当前有哪些任务 Crontab -r 删除所有任务 一次性任务 at 时间 -f 脚本 at now + 10 minutes -f test.sh 6、JDK安装 上传jdk*****.bin 授权可执行 执行后,默认安装到/usr/java/ 配置系统环境变量 vi /etc/profile JAVA_HOME=/usr/java/jdk1.6.0_45 PATH=$JAVA_HOME/bin:$PATH; CLASSPATH=.:$JAVA_HOME/lib; 重启终端,测试 ------------------------------------------------------------------

Oracle 创建用户

Oracle 创建用户 创建一个新的数据库用户是使用CREATE USER 语句完成的,该语句一般是由DBA 用户来执行;如果要以其他用户身份创建用户,则要求用户必须具有CREATE USDER 系统权限。 每个用户在连接到数据库时,都需要进行身份验证。身份验证可以通过操作系统进行,也可以通过数据库进行,或者通过独立的网络服务器进行。数据库验证是指使用数据库来检查用户、密码以及连接用户的身份,该方式也是最常用的用户验证方式,因此本书重点介绍数据库验证方式。采用数据库验证具有如下优点: ● 用户账号及其身份验证全部由数据库控制,不需要借助数据库外的任何控制。 ● 当使用数据库验证时,Oracle 提供了严格的密码管理机制,加强了密码的安全性。 如果使用数据库验证,则创建用户时必须提供连接密码,并且密码必须是单字节字符。例如,下面的语句创建了一个用户ATG ,并为该用户指定了登录密码、默认表空间、临时表空间: SQL> connect system/password 已连接。 SQL> create user developer 2 identified by developer 3 default tablespace user01 4 quota 10m on user01 5 temporary tablespace temp; 用户已创建。 在上面的语句中,创建了一个名为DEVELOPER 的用户。其中,子句IDENTIFIED BY 指定用户密码,该密码是用户的初始密码,在用户登录到数据库后可以对其进行修改。DEFAULT TABLESPACE 子句为用户指定默认表空间,这样在建立数据库对象(表、索引和簇)时,如果不指定TABLESPACE 子句,Oracle 会自动在默认表空间上为这些对象分配空间。TEMPORARY TABLESPACE 子句用于为用户指定临时表空间,当用户所执行的SQL 语句需要进行排序操作时,若临时数据尺寸超过PGA 工作区,则会在该表空间上建立临时段。QUOTA 子句为用户指定表空间配额,即用户对象在表空间上可占用的最大空间。 在创建用户时需要注意,Oracle 不允许使用其他类型的表空间作为临时表空间使用,同样,也不允许使用临时表空间作为默认表空间。否则会出现如下所示的错误: SQL> create user developer02 2 identified by developer 3 default tablespace USER01 4 quota 128m on users 5 temporary tablespace USERS; create user atg02 注 意 使用过Oracle 10g 以及早期版本的用户需要注意,11g 中的用户密码是区分大小的。

oracle数据库创建用户,给用户授权,创建表的语句程序代码

1、创建用户,给该用户授权 Drop user clwz_user 删除用户名为“clwz_user”的用户,注意当删除该用户时,用户下的所有表,都会被删除。 CREATE USER CLWZ_USER IDENTIFIED BY CLWZPZXTSDGAB DEFAULT TABLESPACE clwz_dy TEMPORARY TABLESPACE clwz_dy PROFILE DEFAULT; 创建用户,用户名为“CLWZ_USER”,密码为“CLWZPZXTSDGAB”,默认的表空间为“clwz_dy”, GRANT "DBA" TO "CLWZ_USER"; 付给用户CLWZ_USER对oracle操作的dba权限 2、创建表 drop table vio_users; 删除表名为“vio_users”的表 Oracle中常用的数据类型 Char:存放定长字符数据 Varchar2:存放可变厂字符数据 Number(1,d):存放数值型数据,1代表总位数,d代表小数点厚位数 Date:存放日期 create table vio_users( police_no varchar2(10) primary key, name varchar2(20) not null, password varchar2(20), kind char(1), csrq date, xzqh varchar2(10), privilege varchar2(30) ); 创建表“vio_users”,其中字段police_no为唯一索引字段,字段name为不可空,其他字段默认可空 Desc vio_users 查看表为vio_users的表结构 若想创建和表vio_users的表结构一样,也要其数据的话 Create table aa as select * from vio_users; 若想创建和表vio_users的表结构一样,不要其数据的话 Create table aa as select * from vio_users where rownum<1

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

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

实验二创建数据库用户及授权

实验二创建数据库用户及授权 一、实验目的 掌握Oracle11g的基本操作。理解Oracle用户概念;掌握Oracle11g数据库登录过程及方法,数据的导入与导出。 二、实验属性 设计性 三.实验仪器设备及器材: 1.安装有windows操作系统计算机。 2.安装有Oracle11g和SQL Server的计算机。 3.安装有Visual Studio .net和Java编译器(eclipse、Netbean等)的编译器。 4.计算机具备网络环境。 四.实验要求 1、建立一个永久表空间tbs_test, 建立一个临时表空间ts_temp。 create tablespace tbs_test datafile 'e:\app\zhangxibo\oradata\orcl\tbs_test'size 10m autoextend on extent management local autoallocate; create temporary tablespace ts_temp

tempfile 'e:\app\zhangxibo\oradata\orcl\ts_temp'size 50m autoextend on extent management local; 2、创建用户Turing。该用户的表空间是tbs_test和ts_temp。 create user Turing identified by 123456 profile default default tablespace tbs_test temporary tablespace ts_temp account unlock; 3、给用户Turing授权。(create user Turing identified by 123456) grant connect,resource, create session, create table, create procedure, create sequence, create trigger,

ORACLE数据库用户与权限管理

ORACLE数据库用户与权限管理ORACLE是多用户系统,它允许许多用户共享系统资源。为了保证数据库系统的安全,数据库管理系统配置了良好的安全机制。 2.1 ORACLE数据库安全策略 建立系统级的安全保证 系统级特权是通过授予用户系统级的权利来实现,系统级的权利(系统特权)包括:建立表空间、建立用户、修改用户的权利、删除用户等。系统特权可授予用户,也可以随时回收。ORACLE系统特权有80多种。 建立对象级的安全保证 对象级特权通过授予用户对数据库中特定的表、视图、序列等进行操作(查询、增、删改)的权利来实现。 建立用户级的安全保证 用户级安全保障通过用户口令和角色机制(一组权利)来实现。引入角色机制的目的是简化对用户的授权与管理。做法是把用户按照其功能分组,为每个用户建立角色,然后把角色分配给用户,具有同样角色的用户有相同的特权。 2.2 用户管理 ORACLE用户管理的内容主要包括用户的建立、修改和删除用户的建立

2.3系统特权管理与控制 ORACLE 提供了80多种系统特权,其中每一个系统特权允许用户执行一个或一类数据库操作。 授予系统特权 回收系统特权 显示已被授予的系统特权(某用户的系统级特权) 2.4 对象特权管理与控制 ORACLE对象特权指用户在指定的表上进行特殊操作的权利。这些特殊操作包括增、删、改、查看、执行(存储过程)、引用(其它表字段作为外键)、索引等。 授予对象特权

//级联授权 回收对象特权 显示已被授予的全部对象特权 2.5 角色的管理 ORACLE的角色是命名的相关特权组(包括系统特权与对象特权),ORACLE用它来简化特权管理,可把它授予用户或其它角色。 ORACLE数据库系统预先定义了CONNECT 、RESOURCE、 DBA、 EXP_FULL_DATABASE、IMP_FULL_DATABASE五个角色。CONNECT具有创建表、视图、序列等特权;RESOURCE具有创建过程、触发器、表、序列等特权、DBA具有全部系统特权;EXP_FULL_DATABASE、 IMP_FULL_DATABASE具有卸出与装入数据库的特权。 通过查询sys.dba_sys_privs可以了解每种角色拥有的权利。 授予用户角色

Oracle+创建删除用户

Oracle 创建删除用户、角色、表空间、导入导出、备份命令总结导入导出实用程序用于实施数据库的逻辑备份和恢复 导出实用将数据库中的对象定义和数据备份到一个操作系统二进制文件中 导入使用程序读取二进制导出文件并将对象和数据载入数据库中 导出额导入实用程序的特点有: 1.可以按时间保存表结构和数据 2.允许导出指定的表,并重新导入到新的数据库中 3.可以吧数据库迁移到另外一台异构服务器上 4.在两个不同版本的Oracle数据库之间传输数据 5.在联机状态下进行备份和恢复 6.可以重新组织表的存储结构,减少链接及磁盘碎片 调用导入导出的三种方法: 在命令执行程序的参数和参数值 已交互的方式提示用户逐个输入参数的值 允许用户将运行参数和参数值存储在参数文件中,以便重复使用参数 导入导出数据库对象的四种模式:完全数据库、表、用户、表空间 导入导出整个数据库的所有对象 导入导出一个或多个指定的表或表空间 导入导出一个用户模式中的所有对象 导入导出一个或多个指定的表空间中的所有对象 导出使用程序有以下常用的命令参数 参数说明 USERID 确定执行导出实用程序的用户名和口令 BUFFER 确定导出数据时所使用的缓冲区大小,其大小用字节表示 FILE 指定导出的二进制文件名称,默认的扩展名是.dmp FULL 指定是否以全部数据库方式导出,只有授权用户才可使用此参数OWNER 要导出的数据库用户列表 HELP 指定是否显示帮助消息和参数说明 ROWS 确定是否要导出表中的数据 TABLES 按表方式导出时,指定需导出的表和分区的名称 PARFILE 指定传递给导出实用程序的参数文件名

Oracle12C用户创建与表空间分配

Oracle 12C用户创建与表空间分配 数据库安装完成后,首先用系统用户链接数据库容器(CDB), 在数据库容器(CDB)中创建表空间‘imei’ SQL>create tablespace iemi datafile'E:\Oracle_DB\ cdb_iemi.dbf'size 10240m autoextend on next 200m; 表空间已创建。 接下来在Oracle 12C数据库中创建用户时会报ORA-65096错误。SQL> create user imei identified by imei default tablespace imei temporary tablespace imei_temp; * ERROR at line 1: ORA-65096: invalid common user or role name ORA-65096:公用用户名或角色名无效 以前没见过这个错误,通用用户(common user)是什么?之前的版本可是没这概念啊,上网搜索看到了下面的图片,原来和common user 对应的还有local user。

这个common user 和local user是和oracle 12c的新特性pluggable database(PDB)有关。在PDB中创建的用户就是local user。从上图可以看出,common user必须以大写或小写的c##开头,尝试建立以c##开头的common user。 SQL> create user c##imei identified by imei default tablespace imei temporary tablespace imei_temp;; User created. SQL> grant dba to c##imei; Grant succeeded. 每个PDB都是独立的单元,有自己的用户(local user)、表空间、数据文件,每个local user只能访问自己的PDB,而common user只要权限足够,可以访问任意PDB。

Oracle用户权限表的管理方法

我们将通过介绍命令的方式,谈谈Oracle用户权限表的管理方法,希望对大家有所帮助。 我们将从创建Oracle用户权限表开始谈起,然后讲解登陆等一般性动作,使大家对Oracle用户权限表有个深入的了解。 一、创建 sys;//系统管理员,拥有最高权限 system;//本地管理员,次高权限 scott;//普通用户,密码默认为tiger,默认未解锁 sys;//系统管理员,拥有最高权限 system;//本地管理员,次高权限 scott;//普通用户,密码默认为tiger,默认未解锁 二、登陆 sqlplus / as sysdba;//登陆sys帐户 sqlplus sys as sysdba;//同上 sqlplus scott/tiger;//登陆普通用户scott sqlplus / as sysdba;//登陆sys帐户 sqlplus sys as sysdba;//同上 sqlplus scott/tiger;//登陆普通用户scott 三、管理用户 create user zhangsan;//在管理员帐户下,创建用户zhangsan alert user scott identified by tiger;//修改密码 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) /*管理员授权*/ 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;

Oracle11g NC63创建表空间及用户及授权

Oracle11g NC63创建表空间及用户及授权 在cmd中运行 sqlplus /nolog conn /as sysdba 2--建表空间及用户 CREATE TABLESPACE NNC_DATA01 DATAFILE 'F:\app\oradata\nnc_data01.dbf' SIZE 2048M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ; CREATE TABLESPACE NNC_DATA02 DATAFILE 'F:\app\oradata\nnc_data02.dbf' SIZE 50M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ; CREATE TABLESPACE NNC_DATA03 DATAFILE 'F:\app\oradata\nnc_data03.dbf' SIZE 2048M AUTOEXTEND ON NEXT 100M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K ; CREATE TABLESPACE NNC_INDEX01 DATAFILE 'F:\app\oradata\nnc_index01.dbf' SIZE 100M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K ; CREATE TABLESPACE NNC_INDEX02 DATAFILE 'F:\app\oradata\nnc_index02.dbf' SIZE 2048M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K ; CREATE TABLESPACE NNC_INDEX03 DATAFILE 'F:\app\oradata\nnc_index03.dbf' SIZE 100M AUTOEXTEND ON NEXT 100M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ;

oracle11g用户创建及赋权操作

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对权限管理比较严谨,普通用户之间也是默认不能互相访问的,需要互相授权

Oracle授予用户权限的一个实例

本文将从用户创建讲起,特别讲述Oracle授予用户权限的一个实例,希望对大家了解Oracle授予用户权限有所帮助。 这两天在测数据库同步软件的时候,需要在Oracle里创建一个用户名和密码均为SYSDA TA的用户,找了找资料,创建成功,现将Oracle中用户的创建和授予命令摘录下来: 1、Linux 下Oracle的启动 以Oracle身份登录 启动lsnrctl start 登录sqplus /nolog 连接数据库connect/assysdba 启动数据库startup 关闭数据库shutdown immediate 2、在数据中创建用户名 启动数据库后创建用户名 连接超级用户connect system/admin system 系统用户名字admin 密码 创建用户名字create user SYSDA TA identified by admin 用户名:SYSDA TA密码:admin 可以写Default tablespace user//指定存储对象使用的默认空间表默认是system Temporary tablespace temp; //保存临时对象所使用的空间表默认是system 上面的俩行,可以写空间表为user临时为temp;不写就默认 3、添加用户的权限 Grant是Oracle授予用户权限的如: Grant create session to SYSDA TA;//授予SYSDA TA连接数据的权限 系统权限如下: 系统特权允许执行的操作 Create session连接数据库 Create sequence创建序列 Create synonym创建同名对象 Create table创建表 Create any table创建任何模式的表 Drop table删除表 Create procedure创建存储过程 Execute any procedure执行任何模式的存储过程 Create user创建用户 Create view创建视图 Drop user删除用户 Drop any table删除任何模式的表 4、向用户授予系统特权 Grant execute any procedure toSYSDA TA with admin option 此句意思为为sha用户创建系统特权并且可以用SYSDA TA为别的用户授予权限 连接SYSDA TA用户connect SYSDA TA/admin 可以创建别的用户

oracle创建用户及权限等sql语句201471121

------------------------1.创建用户及权限等语句:-------------------------------------- --(1)创建用户及赋予密码: create user liuer identified by liuer; --(2)给新创建的用户赋予权限: grant create session to liuer;--登录权限】 grant dba to liusx;--赋予dba 的权限 grant connect ,resource,dba to liusx; grant connect ,resource to liuer; grant insert,delete,update,select on liuer.test_temp3 to lihl;--给lihl赋予查询liuer用户下的test_temp3表 grant select any table on liuer to lihl; --(3)修改用户的密码: alter user liuer identified by liuer123; alter user scott identified by liuer123; --(4)查看用户 select * from user_users; --(5)查看所有用户及用户所在的表空间 select username,default_tablespace from dba_users; --(6)修改用户的表空间 alter user 用户名default tablespace 表空间名字; alter user liuer default tablespace liuer_data ;--例子 --(7)创建用户时并赋予表空间 create user lihl identified by liuer123 default tablespace liuer_data; alter user liusx default tablespace liuer_data ; --------------------------2.表空间相关问题:------------------------------------- --(1)创建表空间 create tablespace liuer_data datafile 'D:\APP\LIUER\ORADATA\ORCL\liuer_data.DBF' size 1024M; --(2)查看一下所有用户所在的表空间: select username,default_tablespace from dba_users; --(3)查看表空间名及存储路径: select tablespace_name,file_name from dba_data_files; --(4)查看表空间的名称及大小 SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size FROM dba_tablespaces t, dba_data_files d WHERE t.tablespace_name = d.tablespace_name GROUP BY t.tablespace_name; --(5)查看表空间物理文件的名称及大小 SELECT tablespace_name, file_id, file_name, round(bytes / (1024 * 1024), 0) total_space FROM dba_data_files

oracle数据库用户的创建及数据导入

ORACLE数据库的创建 1、安装11g数据库 2、运行cmd,输入sqlplus进入sqlPlus命令窗口 3、连接DBA超级管理员权限 4、删除之前的无用数据库 5、创建用户 6、授权 7、导入imp格式的数据库 imp system/sbcp2014file=Z:\ora_2017\ORAC_sbcp.dmp log=Z:\ ora_2017\ORAC_sbcp.log fromuser=sbcptouser=sbcp AL32UTF8,ZHS16GBK

shutdown immediate; startup mount; alter session set sql_trace=true; alter system enable restricted session; alter system set job_queue_processes=0; alter system set aq_tm_processes=0; alter database open; alter database character set internal_useZHS16GBK; alter session set sql_trace=false; shutdown immediate; startup; 1、搜索出用户的sid,serial# select sid,serial# from v$session where username='user_name'; 2、断开会话 alter system kill session 'sid,serial'; 3、删除用户 drop user user_name cascade; 4、创建用户 create user user_name identified by password; 5、赋予基本角色 grant resource,connect to user_name; 修改用户表空间 alter user sbcpdefault tablespace system; 修改系统默认表空间 alter database default tablespace system; 新建表空间 create tablespace FWSXC datafile 'D:\app\Administrator\oradata\or cl\users.dbf' size 10g autoextend on next 1g maxsize 30g create tablespace SXSJ datafile 'D:\app\LZB\oradata\SXSJ' size 512M autoextend on next 32M;

批量建Oracle用户

需求分析: 1.一次性批量创建100个左右用户; 2.每个用户拥有独立的表空间; 3.权限方面,既要满足教学上机练习的需求,又要严格限制权限,以防初学者对系统 造成意外破坏。 4.对于服务器资源,作以下阐述。由2013下半年实验总结,监测到的数据:数据库 会话数的峰值:300~320,此时由第三方软件测试数据显示,服务器资源使用达到80%左右。作为学习数据库服务器,应该尽可能使用服务器资源,最大可能的提供服务,以供教学。 解决方案: 1.概要文件:概要文件用于口令和资源限制(由13年12月2日那次实验吸取教 训,对与口令,最好不好限制尝试登录次数等等,一旦出问题,无论怎么修改概要文件都无济于事,再说,口令限制也是为了防御外来攻击,作为学习数据库没必要那么严格控制)。以下只做资源限制(以下数据参考来自Oracle DBA 培训教程-何明-清华大学出版社,数据有待进一步测试验证) A.会话 资源:服务器最大可提供300个对外会话数(下次实验可以使用Spotlight on Oracle 9.6这款软件检测物理连接数是多少)。 需求:100个左右用户同时连接服务器。 结论:每个用户的最大会话数限制在三个。 B.CPU占用时间 防止一个会话消耗过多处理器时间,每个会话所使用的处理器时间不能超过 16800个1%S(168S)。 C.数据块 防止用户狂搞数据(如笛卡尔积)产生大量输入输出,每个会话最多的逻辑阅读量为23688个数据块。 D.挂机时间

每个用户最多挂3个小时 E.空闲时间 防止长期不干活,占用资源,超过28分钟不干活就踢出系统并回滚该用户没有提交的事务。 2.角色:教学过程中,学生需要用到大量权限,在数据库中进行练习,以往经验可 知,权限授予要慎重,以免意外破外系统,导致实验无法进行。为了统一管理,创建一个ORACLE_STUDENT_ROLE角色; 经过裴学长一系列测试,决定赋予学生用户以下权限: 将要创建角色系统预定义角色系统权限 CONNECT CREATE SESSION 创建会话 RESOURCE CREATE CLUSTER 创建簇 RESOURCE CREATE INDEXTYPE 创建索引类型 RESOURCE REATE OPERATOR 创建控制器 RESOURCE REATE PROCEDURE 创建过程 RESOURCE REATE SEQUENCE 创建序列 ORACLE_STUDENT_ROLE RESOURCE REATE TABLE 创建表 RESOURCE REATE TRIGGER

相关主题