创建数据库实例
登陆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; 对于特殊业务如自动库,可再授予其对象权限。