netnr/ OracleManager.sql 2020-01-10 11:23
Oracle 表空间、用户、角色权限的管理
-- 查看表空间物理文件的名称及大小
SELECT tablespace_name, file_id, file_name, round(bytes / (1024 * 1024), 2) total_space
FROM dba_data_files ORDER BY tablespace_name;

-- 表空间占用情况
SELECT a.segment_name, b.table_name, sum(a.bytes)/ 1024 / 1024 AS mb
FROM dba_segments a LEFT JOIN dba_lobs b ON a.segment_name = b.segment_name
WHERE a.tablespace_name = 'DSPACE' GROUP BY a.segment_name, b.table_name ORDER BY mb DESC;

-- 查询所有用户所对应的表空间,有dba权限的帐号,如sys,system
select username, default_tablespace from dba_users;

select * from all_users  -- 查看你能管理的所有用户
select * from user_users -- 查看当前用户信息

-- 创建表空间(大小 500M,每次 5M 自动增大,最大不限制)
-- 格式:create tablespace 表空间名 datafile '数据库物理路径及文件名' size 表空间大小
create tablespace DSPACE datafile '/u01/app/oracle/oradata/EE/DNAME.dbf' size 500M autoextend on next 50M maxsize unlimited;
create tablespace DSPACE datafile 'c:\oracle\oradata\test\DNAME.dbf' size 500M autoextend on next 50M maxsize unlimited;
-- 删除表空间
drop tablespace DSPACE including contents and datafiles cascade constraint;
-- 表空间物理文件超过 32G 再添加
alter tablespace DSPACE add datafile '/u01/app/oracle/oradata/EE/DNAME02.dbf' size 1000M autoextend on next 50M Maxsize UNLIMITED

-- 创建用户并指定表空间
-- 格式: create user 用户名 identified by 密码 default tablespace 表空间名
create user DNAME identified by DPWD default tablespace DSPACE;

alter user DNAME identified by DPWD -- 修改指定用户的密码

-- 为用户指定表空间
-- 格式:alter user 用户名 default tablespace 表空间名
alter user DNAME default tablespace DSPACE;

-- 删除用户
-- 格式:drop user 用户名 cascade
drop user DNAME cascade;

-- 授予权限
-- connect:授予最终用户的典型权利,最基本的
-- resource:授予开发人员
-- dba:授予数据库所有的权限
grant connect, resource to DNAME;
grant dba to DNAME;

grant select, update, delete, insert on dbName.TableName to DNAME -- 授予表权限
revoke dba from DNAME  -- 撤销权限
select * from dba_role_privs where grantee='DNAME'  -- 查询用户授予的角色权限

alter user DNAME account lock  -- 用户锁定方法
alter user DNAME account unlock  -- 用户解锁方法

select username,account_status,expiry_date,profile from dba_users -- 查询用户密码过期日期
alter profile default limit password_life_time unlimited -- 设置数据库密码永不过期
alter profile default limit password_life_time 180 -- 设置 180 天
alter user DNAME identified by NewPwd -- 重设密码重置过期账号

-- 配置归档 控制台 sqlplus
archive log list; -- 查看
shutdown immediate; -- 关闭数据库
startup mount; -- 进入 mount
alter system set log_archive_dest_1='location=/home/archive'; -- 配置存储路径
alter database archivelog; -- 启用
alter database noarchivelog; -- 禁用
alter database open; -- 开启数据库
alter system switch logfile; -- 切换日志,验证归档
-- Toad for Oracle 分析归档日志
-- 登录管理员,菜单选择 Database / Diagnose / LogMiner

-- 归档日志 控制台 sqlplus
show parameter audit; -- 查看审计
alter system set audit_trail=db_extended scope=spfile; -- audit_trail 为 DB_EXTENDED 才记录执行语句
alter system set audit_trail=none scope=spfile; -- 关闭审计
audit all by {user}; -- 对用户的所有行为进行审计
-- 重启生效
shutdown immediate;
startup;