一、登录管理
1. 连接方式
Oracle JDBC
连接一共有三种方式,分别是:SID
、SERVICE_NAME
和 TNSName
。
-- SID 格式,两种方式等价。
jdbc:oracle:thin:@<host>:<port>:<SID>
jdbc:oracle:thin:@<host>:<port>/<SID>
-- TNSName 格式
jdbc:oracle:thin:@<TNSName>
-- Service name 格式
jdbc:oracle:thin:@//<host>:<port>/<SERVICE_NAME>
2. 命令连接
通过命令行方式连接数据库,命令步骤如下:
-- 进入容器
docker exec -it oracle /bin/bash
-- 进入工作目录
cd /home/oracle && source .bash_profile
-- 访问,输入用户名、密码
sqlplus
-- 无用户登录
sqlplus /nolog
-- 连接数据库
conn /as sysdba
二、用户管理
Oracle
每个用户之间的数据库都是独立存在的,根据业务需要可以创建不同的用户角色。
1. 用户创建
通过 create user
创建新的用户,创建的用户需要授权后才可进行登录等操作。
-- 连接,回车输入账号
sqlplus
-- 创建用户
create user <username> identified by <password>;
通过 alter user
修改用户密码等信息,drop user
删除创建的用户。
alter user <username> identified by <password>;
-- 删除用户
drop user <username> cascade;
2. 授权管理
用户新建之初并没有任何权限,因此我们需要对新建的用户进行授权。
-- 用户授权
grant <privilege> to <username>;
-- 解锁用用户
alter user <username> account unlock;
-- 移除授权
revoke <privilege> from <username>;
其中 privilege
可选项参考下表:
权限 | 描述 |
---|---|
dba | 拥有所有的系统权限。 |
connect | 临时用户,没有建表权限,只对其他用户的表有访问权限,包括 select, insert, update 和 delete 等。 |
resource | 提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)。 |
3. 连接限制
新建的用户默认密码有效期为 180
天,且在错误输入 10
次密码之后该账号将会被锁定,可根据实际需要延长期限或设置为无限制。
-- 设置密码不过期,默认 180 天
alter profile default limit PASSWORD_LIFE_TIME unlimited;
-- 无限制次数限制,默认 10 次
alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;
三、系统配置
1. 系统信息
通过 v$version
可以查询当前数据库的版本等基本信息。
-- 查看版本
select * from v$version;
2. 角色信息
(1) 用户信息
通过查询 dba_users
表获取已创建的用户信息。
-- 查看所有用户详细信息
select * from dba_users;
-- 查看所有用户简要信息
select * from all_users;
-- 查看当前登录用户信息
select * from user_users;
(2) 权限信息
通过查询 dba_sys_privs
表获取已创建的用户权限信息。
-- 查看所有用户权限
select * from dba_sys_privs;
-- 查看当前用户权限
select * from user_sys_privs;
-- 查看指定用户拥有的权限
select * from dba_sys_privs where grantee='BUDAI';
(3) 角色信息
通过查询 dba_role_privs
表获取已创建的用角色信息。
-- 查看整个系统的权限角色列表
select * from dba_role_privs;
-- 查看当前登录用户角色列表
select * from user_role_privs;
-- 查看指定用户的角色
select * from dba_role_privs where grantee='BUDAI';