您的位置:首页 > 数据库

数据库创建

2015-07-21 17:40 381 查看

创建数据库实例

登陆oracle服务器,进入oracle安装目录bin目录下,执行./dbca会出现实例创建界面,一步步执行即可。

创建表空间

表空间是逻辑上用于存储数据库表的,创建用户需给该用户执行默认表空间,否则每次创建表都需手工指定表空间。

表空间作用:

控制用户所占用的表空间配额,主要是限制用户可使用的磁盘空间。

控制数据库所占用的磁盘空间,一个数据库可以有多个表空间,但是一个表空间只属于一个数据库,所以通过设置每个表空间的最大空间,就可以控制数据库占用的磁盘空间。

灵活放置表空间,提高数据库的输入输出性能,在数据库设计时,可根据数据的分类进行创建表空间,不同类型的数据可以放置在不同的表空间内,比如wms、tms等子系统。另外,当表空间可以独立备份和恢复,这样就可以避免整个数据库备份时影响系统性能。

大表的排序操作

临时表空间:

用户进行数据库操作时,排序、分组汇总、索引这些作业会产生大量的临时数据,此时就会使用到临时表空间。

创建用户给用户指定临时表空间,如果不指定,当需要使用临时表空间时,数据库就会使用系统表空间,从而降低数据库性能。

创建语句:

create tablespace spacename  -----表空间名称
logging
datafile 'D:\oracle\oradata\Oracle9i\user_data.dbf' -----指定表空间对应的数据库文件存储路径
size 32m                     -----初始大小
autoextend on                -----开启自动扩展
next 32m maxsize 20480m      -----每次增加32m,最大空间20G
extent management local;

create temporary tablespace tempspacename  -----临时表空间名称
logging
tempfile 'D:\oracle\oradata\Oracle9i\user_data.dbf' -----指定临时表空间对应的数据库文件存储路径
size 32m                     -----初始大小
autoextend on                -----开启自动扩展
next 32m maxsize 20480m      -----每次增加32m,最大空间20G
extent management local;


创建用户

create user username
identified by password  ----指定用户名、密码
default tablespace spacename   ----指定默认表空间
temporary tablespace tempspacename ---指定临时表空间
QUOTA integer[K|M]|UNLIMITED ON spacename; ----指定用户在表空间上可以使用的最大空间

alter user username ... ---修改用户
drop user username; ----删除用户,当用户拥有其他对象,比如表、视图时删除失败
drop user username cascade; ----删除用户,连同该用户拥有的表、视图等


常用语句:

ALTER USER username QUOTA 0 ON spacename; —-不可用

ALTER USER scott QUOTA UNLIMITED ON spacename; –无限制

ALTER USER dog QUOTA 30M ON spacename; —可用30m

SELECT USERNAME,TABLESPACE_NAME,MAX_BYTES/1024/1024 “Max MB” FROM dba_ts_quotas WHERE USERNAME=’SCOTT’; —查看用户在表空间上可用的配额

SELECT owner,object_name, object_type FROM dba_objects WHERE owner= ‘SCOTT’; —-查看用户拥有的对象

修改用户密码

一般普通用户密码丢失,可通过plsql等工具使用sys、system等用户登录,进行修改。

sys和system用户可互相修改密码。

sys和system密码丢失,可登录oracle数据服务器bin目录下,通过下图修改密码



用户授权

权限分类:

系统权限: 允许用户执行特定的数据库动作,如创建表、创建索引、连接实例等(对用户而言)

对象权限: 允许用户操纵一些特定的对象,如读取视图,可更新某些列、执行存储过程等(是针对表或视图而言的)

系统权限分类:

DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。

RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。

CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。

对于普通用户:授予connect, resource权限。

对于DBA管理用户:授予connect,resource, dba权限。

常用的系统权限:

CREATE SESSION 创建会话

CREATE SEQUENCE 创建序列

CREATE SYNONYM 创建同名对象

CREATE TABLE 在用户模式中创建表

CREATE ANY TABLE 在任何模式中创建表

DROP TABLE 在用户模式中删除表

DROP ANY TABLE 在任何模式中删除表

CREATE PROCEDURE 创建存储过程

EXECUTE ANY PROCEDURE 执行任何模式的存储过程

CREATE USER 创建用户

DROP USER 删除用户

CREATE VIEW 创建视图

查看系统权限:

dba_sys_privs 记录所有用户拥有的系统权限

user_sys_privs 记录当前用户拥有的系统权限

SELECT grantee,privilege,admin_option FROM dba_sys_privs WHERE grantee IN (‘SCOTT’,’ROBINSON’) ORDER BY grantee; —查看用户拥有的系统权限

对象权限:

对象权限视图索引过程
修改(alter)--
删除(delete)--
执行(execute)---
索引(index)---
插入(insert)--
关联(references)--
选择(select)-
更新(update)--
对象授权:

GRANT object_priv|ALL [(columns)] ON object to {user|role|PUBLIC} [WITH GRANT OPTION];

ALL:所有对象权限

PUBLIC:授给所有的用户

WITH GRANT OPTION:允许用户再次给其它用户授权

查询权限分配情况:

数据字典视图描述
ROLE_SYS_PRIVS角色拥有的系统权限
ROLE_TAB_PRIVS角色拥有的对象权限
USER_TAB_PRIVS_MADE查询授出去的对象权限(通常是属主自己查)
USER_TAB_PRIVS_RECD用户拥有的对象权限
USER_COL_PRIVS_MADE用户分配出去的列的对象权限
USER_COL_PRIVS_RECD用户拥有的关于列的对象权限
USER_SYS_PRIVS用户拥有的系统权限
USER_TAB_PRIVS用户拥有的对象权限
USER_ROLE_PRIVS用户拥有的角色
查询语句:

SELECT * FROM user_tab_privs_made; –下面是scott用户开放的对象权限

SELECT * FROM user_col_privs_made; –查询列上开放的对象权限

SELECT * FROM user_tab_privs_recd; –查询已接受的对象特权(即某个用户被授予了哪些表上的哪些对象特权)

SELECT * FROM user_col_privs_recd; –查询用户已接受列的对象权限

收回权限:

使用REVOKE 语句收回权限

使用WITH GRANT OPTION 子句所分配的权限同样被收回

REVOKE {privilege [, privilege…]|ALL} ON object FROM {user[, user…]|role|PUBLIC}

with admin option :给用户授予系统权限时可使用该选项,被授权者可将这些权限再次授给其他用户,回收时,不会回收其他用户的权限。

with grant option :给用户授予对象权限时可使用该选项,被授权者可将这些权限再次授给其他用户,回收时,同时回收其他用户的权限。

wms项目数据库

创建表空间、临时表空间

创建用户,指定用户默认的表空间

授权,对于wms自身用户,可:grant dba,connect,resource to wms;

对于一般用户,如wcs用户,可:grant connect,resource to S3_WCS; 对于特殊业务如自动库,可再授予其对象权限。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  markdown