Oracle DataBase 用户管理与权限管理
数据库
-- 查看数据库 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;
用户
-- 在 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;
密码
-- 给当前用户修改密码 password 用户名; -- 给其它用户修改密(需要 dba 的权限,或是拥有 alter user 的系统权限,也可以使用 password 用户名) ALTER USER 用户名 IDENTIFIED BY 新密码;
授权
-- 授权 GRANT CONNECT,RESOURCE TO C##zhangsan; -- 删除授权 REVOKE CONNECT,RESOURCE FROM C##zhangsan;
配额
-- 查看配额,配额可以禁止用户对象使用过多的表空间 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;
导出导入
exp zhangsan/mima@127.0.0.1:1521/orcl file=/opt/xxx.dmp owner=zhangsan imp lisi/mima@10.77.88.99:1522/orcl file=/opt/xxx.dmp fromuser=zhangsan touser=lisi
- full=y,导入或导出全部内容
- ignore=y,没有的表,创建并倒入数据,已经有的表,忽略创建,不忽略导入
- buffer,缓冲大小
数据量查看
--查询所有表及表中的数据量 select u.TABLE_NAME,u.NUM_ROWS from user_tables u order by u.NUM_ROWS desc
慢 SQL:https://juejin.cn/post/7002490281228517413
限制
-- 解锁用户,将 USER_NAME 替换为登录用户名 ALTER USER USER_NAME ACCOUNT UNLOCK; -- 不限制登录失败次数,默认超过次数会锁定账号,禁止登陆 ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED; -- 用户密码不过期,默认超过时间会过期,需要修改密码才能登陆 ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
https://docs.oracle.com/en/database/oracle/oracle-database/19/administration.html