您的位置:首页 > 数据库 > Oracle

Oracle 创建用户及数据表的方法

2014-04-30 16:02 344 查看
Oracle 创建用户及数据表的方法-

(*凡oracle命令在 sqlplus中执行, 即运行 sqlplusw system/manager@test -这是以前安装时讲到的)

1. 数据库 当我们安装好oracle8i后,一个数据库系统就安装好了,其中有一个缺省的数据库,当然,我们还可以创建新的数据库.

2. 现在我们应该建数据表空间, 就如要存放货物,起码首先得把房子建好吧。就是存放东西的空间。表空间就存放数据的空间.

格式: create tablespace 表间名 datafile '数据文件名' size 表空间大小;

example:

create tablespace data_test datafile 'e:\oracle\oradata\test\data_1.dbf' size 2000M;

create tablespace idx_test datafile 'e:\oracle\oradata\test\idx_1.dbf' size 2000M;

(*数据文件名 包含全路径, 表空间大小 2000M 表是 2000兆)

3. 建好 tablespace, 就可以建用户了

格式: create user 用户名 identified by 密码 default tablespace 表空间表;

example:

create user study identified by study default tablespace data_test;

(*我们创建一个用户名为 study,密码为 study, 缺少表空间为 data_test -这是在第二步建好的.)

(*抽省表空间表示 用户study今后的数据如果没有专门指出,其数据就保存在 data_test中, 也就是保存在对应的物理文件 e:\oracle\oradata\test\data_1.dbf中)

4. 授权给新用户

grant connect,resource to study;

--表示把 connect,resource权限授予study用户

grant dba to study;

--表示把 dba权限授予给 study

5. 创建数据表

在上面,我们已建好了用户 study 我们现在进入该用户

sqlplusw study/study@test

然后就可以在用户study中创建数据表了

格式: create table 数据表名 , 后面的详细参数,请你在网上搜索 "oracle" "create table" "语法". 太多了,我就不附在这里了。

下面给一个例子,自己体会.

create table test_user (

no number(5) not null , --pk

username varchar2(30) not null , --用户名

passpord varchar2(30) not null , --密码

constraint pk_connectdb primary key(no)

)storage (initial 10k next 10k pctincrease 0);

*下面讲解上面命令的各方面的含义

create table test_user --创建数据表

no number(5) not null , --pk

(列名或字段名) 数据类型(数据长度) 该数据列不能为空 ,是列之间的分隔符 --后的内容是注释

constraint pk_connectdb primary key(no)

(约束) 约束名 (主键) (列名) 意思就是 在数据表 test_user中所有行数据 no的值不能相同(这就是主键的含义)

storage (initial 10k next 10k pctincrease 0); 这个说起来比较复杂, 反正如果某个数据表要存放大量数据,就把initial和next后的值设置大一点, 否则设置小一点.

既然上面在创建数据表中没有特别指定 表空间,当然该表就存放在study缺省表空间data_test了.

create tablespace data_phonepos datefile 'd:\install\OracleXpdb\datafilephonepos.dbf' size 8000M;

create user phonepos identified by phonepos default tablespace data_phonepos;

grant connect, resource to phonepos;

grant dba to phonepos;

权限的查询

5。1 查询某个用户授予其他用户在当前用户模式下的对象权限

select * from user_tab_privs_made --假如当前用户为WENZI,那么查询结果就是由WENZI授权,在WENZI模式下的权限记录

5。2 查询某个用户授予其他用户在该用户模式对象及其他模式对象上的对象权限

select * from all_tab_privs_made -- 假如当前登录用户为WENZI,那么查询结果就是所有由WENZI授予的权限的记录

修改用户

ALTER USER avyrros

IDENTIFIED EXTERNALLY

DEFAULT TABLESPACE data_ts

TEMPORARY TABLESPACE temp_ts

QUOTA 100M ON data_ts

QUOTA 0 ON test_ts

PROFILE clerk;

删除用户

DROP USER username [CASCADE] --CASECADE 选项会删除该用户模式下的所有对象,建议在删除前,先确认是否有其他的依赖关系存在。

查询属于用户的对象

select owner,object_name,object_type,status from dba_objects where owner='WENZI'

5.3 查询为某个用户授予的,在其他模式对象上的权限

select * from user_tab_privs_recd --假如当前登录用户为WENZI,那么查询结果就是WENZI在其他模式对象上的权限

5.4 查询为某个用户授予的,在该用户模式对象与其他模式对象上的权限

select * from all_tab_privs_recd --假如当前用户为wenzi,则查询结果为wenzi在整个数据库中拥有权限的对象

角色管理

创建口令文件

orapwd file='..........\pwd{SID}.ora' password='***(sys的密码)' tntries=10(口令文件最大的用户数量)

要使某个用户可以使用口令文件,必须为其授予SYSDBA权限,系统会自动将其加入到口令文件中。

grant sysdba to wenzi

当收回SYSDBA权限时,系统将对应的用户从口令文件中删除。

revoke sysdba from wenzi

查看口令文件管理的用户

select * from v$pwfile_users 您可能感兴趣的文章:

oracle命令行删除与创建用户的代码

Oracle新建用户、角色,授权,建表空间的sql语句

-

*****************************************************************

database 被移走的处理方法

sql>alter database datafile '磁盘:\filename\dataxxx.dbf' offline drop;

sql>alter database open;

*****************************************************************
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: