oracle flows files,如何在Oracle数据库11g中创build新的模式/新用户?

一般来说,oracle中的模式与用户相同。 Oracle数据库在您创build用户时自动创build一个模式。 具有DDL文件扩展名的文件是一个SQL数据定义语言文件。

创build新用户(使用SQL Plus)

基本的SQL Plus命令:

- connect: connects to a database - disconnect: logs off but does not exit - exit: exists

打开SQL Plus并logging:

/ as sysdba

sysdba是一个angular色,就像unix上的“root”或Windows上的“Administrator”一样。 它看到一切,可以做到一切。 在内部,如果以sysdba身份连接,模式名称将显示为SYS。

创build一个用户:

SQL> create user johny identified by 1234;

查看所有用户,并检查用户johny是否存在:

SQL> select username from dba_users;

如果你现在尝试以johny的身份login,你会得到一个错误:

ERROR: ORA-01045: user JOHNY lacks CREATE SESSION privilege; logon denied

要login的用户至less需要创build会话权限,因此我们必须将此权限授予用户:

SQL> grant create session to johny;

现在您可以以用户johny的身份连接了:

username: johny password: 1234

为了摆脱用户,你可以删除它:

SQL> drop user johny;

这是显示如何创build用户的基本示例。 这可能会更复杂。 上面我们创build了一个用户的对象存储在数据库的默认表空间。 为了让数据库整洁,我们应该把用户对象放到自己的空间(表空间是数据库中可以包含模式对象的空间分配)。

显示已经创build的表空间:

SQL> select tablespace_name from dba_tablespaces;

创build表空间:

SQL> create tablespace johny_tabspace 2 datafile 'johny_tabspace.dat' 3 size 10M autoextend on;

创build临时表空间(Temporaty表空间是数据库中的一个空间分配,它可以包含仅在会话持续时间内保留的瞬态数据。在进程或实例失败后,此瞬态数据不能恢复)。

SQL> create temporary tablespace johny_tabspace_temp 2 tempfile 'johny_tabspace_temp.dat' 3 size 5M autoextend on;

创build用户:

SQL> create user johny 2 identified by 1234 3 default tablespace johny_tabspace 4 temporary tablespace johny_tabspace_temp;

授予一些特权:

SQL> grant create session to johny; SQL> grant create table to johny; SQL> grant unlimited tablespace to johny;

以johny身份login,并检查他具有的特权:

SQL> select * from session_privs; PRIVILEGE ---------------------------------------- CREATE SESSION UNLIMITED TABLESPACE CREATE TABLE

通过创build表特权,用户可以创build表:

SQL> create table johny_table 2 ( 3 id int not null, 4 text varchar2(1000), 5 primary key (id) 6 );

插入数据:

SQL> insert into johny_table (id, text) 2 values (1, 'This is some text.');

select:

SQL> select * from johny_table; ID TEXT -------------------------- 1 This is some text.

要获取DDL数据,您可以使用DBMS_METADATA包“提供一种方法,以便您从数据库字典中以XML或创buildDDL的forms检索元数据,并提交XML以重新创build该对象。” (在http://www.dba-oracle.com/oracle_tips_dbms_metadata.htm的帮助下)

对于表格:

SQL> set pagesize 0 SQL> set long 90000 SQL> set feedback off SQL> set echo off SQL> SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name) FROM USER_TABLES u;

结果:

CREATE TABLE "JOHNY"."JOHNY_TABLE" ( "ID" NUMBER(*,0) NOT NULL ENABLE, "TEXT" VARCHAR2(1000), PRIMARY KEY ("ID") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DE FAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "JOHNY_TABSPACE" ENABLE ) SEGMENT CREATION IMMEDIATE PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DE FAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "JOHNY_TABSPACE"

索引:

SQL> set pagesize 0 SQL> set long 90000 SQL> set feedback off SQL> set echo off SQL> SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name) FROM USER_INDEXES u;

结果:

CREATE UNIQUE INDEX "JOHNY"."SYS_C0013353" ON "JOHNY"."JOHNY_TABLE" ("ID") PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DE FAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "JOHNY_TABSPACE"

更多信息:

DDL

DBMS_METADATA

架构对象

架构和用户之间的差异

特权

创build用户/模式

创build表空间

SQL Plus命令

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值