创建表空间 /*分为四步 */ /*第1步:创建暂时表空间 */ create temporary tablespace user_temp tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf' size 50m autoextend on next 50m maxsize 20480m //假设最大值没有上限,则使用unlimited extent management local; //extent 表示区间 设置区间管理方式是本地方式 第二种方式是dictionary 字典方式 。extent能够理解为表的扩展方式 /*第2步:创建数据表空间 */ create tablespace user_data logging //表示创建日志 nologging 表示不创建日志 datafile 'D:\oracle\oradata\Oracle9i\user_data.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local; /*第3步:创建用户并指定表空间 */ create user username identified by password default tablespace user_data temporary tablespace user_temp; /*第4步:给用户授予权限 */ grant connect,resource,dba to username; grant create table to username 1、首先。grant XXX to user;,grant是授权的作用,这里的XXX能够是一个角色role。也能够是权限。比如grant role to user;,或grant insert on table to user;。 MOS中给出的标准SQL语句: 创建角色: create role <role name> [IDENTIFIED BY <password>/USING <package>/EXTERNALLY/GLOBALLY ]; 赋予角色权限: grant <object/system privilege> to <role name>; 从角色收回权限: revoke <privilege> from <role name>; 将角色赋予还有一个角色或用户: grant <role> to <username or role> ; 2、其次,connect和resource是两个系统内置的角色,和dba是并列的关系。 參考一些帖子的说法,权限能够分为两类: 系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而言)。
实体权限:某种权限用户对其他用户的表或视图的存取权限。(是针对表或视图而言的)。 接下来看系统权限, DBA:拥有所有特权,是系统最高权限。仅仅有DBA才干够创建数据库结构。 RESOURCE:拥有Resource权限的用户仅仅能够创建实体。不能够创建数据库结构。 CONNECT:拥有Connect权限的用户仅仅能够登录Oracle。不能够创建实体。不能够创建数据库结构。 对于普通用户:授予connect, resource权限。 对于DBA管理用户:授予connect。resource, dba权限。 且系统权限仅仅能由DBA用户授出:sys, system(最開始仅仅能是这两个用户)。普通用户通过授权能够具有与system同样的用户权限, 但永远不能达到与sys用户同样的权限。system用户的权限也能够被回收。 另外,对于WITH ADMIN OPTION级联授权的问题, 1)假设使用WITH ADMIN OPTION为某个用户授予系统权限,那么对于被这个用户授予同样权限的全部用户来说,取消该用户的 系统权限并不会级联取消这些用户的同样权限。 2)系统权限无级联。即A授予B权限。B授予C权限,假设A收回B的权限,C的权限不受影响;系统权限能够跨用户回收。即A能够 直接收回C用户的权限。 创建表 oracle中创建表: create table users( id number(9) not null primary key, username varchar2(40) not null, age int check(age>18 and age<50) ) create table orders( oid varchar2(10) not null , userid number(9) , primary key (oid), foreign key(userid) references users(id) ) 删除表 :drop table orders 改动表名:alter table orders rename to orderss 加入列: alter table orders add price number(9) 改动列的数据类型:alter table orders modify price number(10) 删除列 :alter table orders drop column price 改动列名:alter table orders rename column price to pri 加入外键: alter table orders add constraint fkuid foreign key(userid) references users(id) 删除约束:alter table orders drop constraint fkuid