Oracle DataBase 用户管理与权限管理

概念:https://docs.oracle.com/en/database/oracle/oracle-database/19/cncpt/introduction-to-oracle-database.html

数据库

-- 查看数据库
SELECT * FROM v$database;

实例

-- 查看数据库实例
SELECT * FROM v$instance;

表空间

https://docs.oracle.com/en/database/oracle/oracle-database/19/admin/managing-tablespaces.html

-- 创建表空间
CREATE TABLESPACE DB
LOGGING
DataFile '/opt/oracle/oradata/ORCLCDB/db.dbf'
SIZE 1024m
Autoextend ON
next 200m maxsize unlimited  
extent management local;

CREATE TEMPORARY TABLESPACE DB_TEMP
TempFile '/opt/oracle/oradata/ORCLCDB/db_temp.dbf'
SIZE 500m
Autoextend ON
next 200m maxsize 2048m  
extent management local;

-- 强制删除表空间
DROP tablespace DB including contents AND datafiles CASCADE CONSTRAINTS;
DROP tablespace DB_TEMP including contents AND datafiles CASCADE CONSTRAINTS;

-- 查看表空间
SELECT * FROM dba_tablespaces;

-- 查询表空间路径
SELECT * FROM dba_data_files;

-- 查看表空间的使用情况
SELECT * FROM dba_free_space;

-- 查看当前用户的表空间及账户状态
SELECT * FROM user_users;

用户

https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/managing-security-for-oracle-database-users.html

-- 在 CDB 容器数据库上创建用户
SELECT name,cdb FROM v$database;
CREATE USER C##zhangsan IDENTIFIED BY mima
DEFAULT TABLESPACE DB
TEMPORARY TABLESPACE DB_TEMP
QUOTA 500m ON DB;

-- 在 PDB 可插拔数据库上创建用户,用户名不用加 C##
-- 需要 TNS(tnsnames.ora) 方式登录,如果不配置会报用户名密码错误
-- https://www.oracle.com/database/technologies/instant-client/downloads.html
SELECT pdb_id,pdb_name,dbid,status,creation_scn FROM dba_pdbs;
select con_id,dbid,NAME,OPEN_MODE from v$pdbs;
select sys_context ('USERENV', 'CON_NAME') from dual;
alter pluggable database pdborcl open;
SELECT name,pdb FROM v$services;
alter session set container=ORCLPDB1;

-- 删除用户,cascade:同时把该用户创建的数据对象一并删除
DROP USER C##zhangsan cascade;

密码

https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/managing-security-for-oracle-database-users.html

-- 给当前用户修改密码
password 用户名;

-- 给其它用户修改密(需要 dba 的权限,或是拥有 alter user 的系统权限,也可以使用 password 用户名)
ALTER USER 用户名 IDENTIFIED BY 新密码;

授权

https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/configuring-privilege-and-role-authorization.html

-- 授权
GRANT CONNECT,RESOURCE TO C##zhangsan;

-- 删除授权
REVOKE CONNECT,RESOURCE FROM C##zhangsan;

配额

https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/managing-security-for-oracle-database-users.html

-- 查看配额,配额可以禁止用户对象使用过多的表空间
SELECT * FROM DBA_TS_QUOTAS;

方案

-- schema 方案,一般称用户所拥有的所有数据库对象的集合叫“方案”,Oracle 中创建方案的方法就是创建用户
-- 希望看到某个用户的方案究竟有什么数据对象,要求:让 xiaohong 可以查看 scott 的 emp 表
-- 先用 scott 登录,再赋权限
conn scott / tiger;
GRANT SELECT [ UPDATE DELETE INSERT ALL ] ON emp TO xiaohong;

查看

-- 查看所有用户
SELECT * FROM DBA_USERS;
SELECT * FROM ALL_USERS;
SELECT * FROM USER_USERS;

-- 查看用户系统权限
SELECT * FROM DBA_SYS_PRIVS;
SELECT * FROM USER_SYS_PRIVS;

-- 查看用户对象或角色权限
SELECT * FROM DBA_TAB_PRIVS;
SELECT * FROM ALL_TAB_PRIVS;
SELECT * FROM USER_TAB_PRIVS;

-- 查看所有角色
SELECT * FROM DBA_ROLES;

-- 查看用户或角色所拥有的角色
SELECT * FROM DBA_ROLE_PRIVS;
SELECT * FROM USER_ROLE_PRIVS;

导入导出

imp lisi/mima@orcl file=/opt/xxx.dmp fromuser=zhangsan touser=lisi

exp zhangsan/mima@127.0.0.1:1521/orcl file=/opt/xxx.dmp owner=zhangsan
  • full=y,导入或导出全部内容
  • ignore=y,没有的表,创建并倒入数据,已经有的表,忽略创建,不忽略导入
  • buffer,缓冲大小

https://docs.oracle.com/en/database/oracle/oracle-database/19/administration.html

原文地址:https://www.cnblogs.com/jhxxb/p/15001995.html