Oracle 笔记

Oracle 笔记

这里主要是记录学习 Oracle 常用操作命令等,方便今后查阅!!!

一、常用命令

登录Oracle

shell 复制代码
su - oracle

export ORACLE_SID=XE
export ORAENV_ASK=NO
. /opt/oracle/product/21c/dbhomeXE/bin/oraenv

sqlplus system/1qaz2WSX

-- 切换到sys用户
conn / as sysdba

查看当前所有的数据库

sql 复制代码
select * from v$database;
或 select name from v$database;

查看哪些用户拥有sysdba、sysoper权限

sql 复制代码
select * from V_$PWFILE_USERS;

--查看当前数据库连接用户
show user;

查看所有表

sql 复制代码
-- 系统里有权限的表
SELECT * FROM ALL_TABLES;

-- 系统表
SELECT * FROM DBA_TABLES; 

-- 当前用户下的表
SELECT * FROM USER_TABLES; 

进入某个数据库
database 数据库名;

-- 查看数据库结构
desc v$database;

查看所有用户实例:

sql 复制代码
select * from v$instance;
或 select instance_name from v$instance;

查看当前库的所有数据表

sql 复制代码
select * from all_tables;
select table_name from all_tables;
select table_name from user_tables;
select table_name from all_tables where owner='用户名';

查看表结构

sql 复制代码
desc table_name;

增加数据库用户

sql 复制代码
create user 用户名 identified by 密码 default tablespace users Temporary TABLESPACE Temp;

用户授权

sql 复制代码
grant connect,resource,dba to 用户名;
grant sysdba to 用户名;
 更改数据库用户密码
alter user 用户名 identified by 密码;

二、创建用户

登录之后就可以创建用户了

sql 复制代码
create user test identified by 123456;
注意:12c的版本肯定会报错:
ORA-65096: 公用用户名或角色名无效

创建用户的时候用户名以c##或者C##开头即可。
错误写法: create user test    identified by 123456;
正确写法: create user c##test identified by 123456;

给用户权限

创建成功以后就需要给新建用户权限

sql 复制代码
-- 授予c##test用户创建session的权限,用来登录
grant create session to c##test;

-- 授予c##test用户使用表空间的权限
grant unlimited session to c##test;

-- 授予创建表的权限
grant create table to c##test;

-- 授予删除、插入、修改表的权限
grant drop table to c##test;
grant insert table to c##test;
grant update table to c##test;

授权标准角色

(即系统默认权限的集合CONNECT、RESOURCE、DBA)

sql 复制代码
 grant connect, resource to c##test;

oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的
如果想让c##test拥有访问其他表的权限,则需要以下命令
-- 授予c##test用户查看指定表的权限
grant select on tablename to c##test;

-- 授予删除表的权限 
grant drop on tablename to c##test;

-- 授予插入的权限 
grant insert on tablename to c##test;

-- 授予修改表的权限 
grant update on tablename to c##test;
grant insert(id) on tablename to c##test; 

-- 授予对指定表特定字段的插入和修改权限,注意,只能是insert和update 
grant update(id) on tablename to c##test;

-- 授予c##test用户alert任意表的权限 
grant alert all table to c##test;

撤销用户权限

sql 复制代码
-- 移除c##test用户创建session的权限
revoke create session from c##test;

-- 移除c##test用户使用表空间的权限
revoke unlimited session from c##test;

-- 移除创建表的权限
revoke create table from c##test;

-- 移除删除表的权限
revoke drop table from c##test;

-- 移除插入表的权限
revoke insert table from c##test;

-- 移除修改表的权限
revoke update table from c##test;

-- 移除所有用户(public)所有权限(all) 
revoke all from public;

等等···和授予权限语法基本都是一样的,除了关键字

查看权限

sql 复制代码
-- 查看当前用户所有权限 
select * from user_sys_privs;

-- 查看所用用户对表的权限 
select * from user_tab_privs;

-- 查看当前用户所有权限 
select * from user_sys_privs;
select * from user_tab_privs;//查看所用用户对表的权限 

角色

(即权限的集合,可以把一个角色授予给用户 )

sql 复制代码
-- 创建角色 
create role myrole;

-- 将创建session的权限授予myrole 
grant create session to myrole;

-- 授予c##test用户myrole的角色
grant myrole to c##test;

-- 删除角色 
drop role myrole;
但是有些权限是不能授予给角色的,比如unlimited table

关注林哥,持续更新哦!!!★,°:.☆( ̄▽ ̄)/$:.°★ 。

相关推荐
要开心吖ZSH43 分钟前
一次线上锁风暴复盘:号源表大范围 DELETE 的隐患与分批删除改造
数据库·mysql·行锁·1024程序员节·间隙锁·lockwaittimeout
l1t2 小时前
在windows中测试musql数据库
数据库·sqlite·go·1024程序员节
鬼手点金2 小时前
从 API 消息到模型 Token:Chat Template
java·前端·javascript·数据库·人工智能·深度学习·1024程序员节
CRMEB系统商城3 小时前
Redis + 消息队列 + 连接池:CRMEB PRO 性能优化的三驾马车
大数据·数据库·人工智能·小程序·php·1024程序员节
鸽芷咕3 小时前
KingbaseES SQL 调优六步法:定位、诊断、下药、验证,一步都别省
数据库
黄俊懿3 小时前
【架构师从入门到进阶】第七章:缓存和存储的优化思路——第一节:缓存概述
数据结构·数据库·分布式·缓存·架构·系统架构·1024程序员节
John_Hui3 小时前
MySQL 进阶知识
数据库·sql·mysql·1024程序员节
java_nnnn4 小时前
Redis 核心特性与应用场景:从底层原理到分布式系统应用
数据库·redis·1024程序员节
Random Glow4 小时前
一条 SQL 从输入到返回,中间经历了什么
数据库·后端·mysql·性能优化·innodb·1024程序员节
何中应4 小时前
MySQL 连接驱动单独下载的两种方式
数据库·mysql·maven