atwood-pan

 

Oracle用户和权限

Oracle用户和权限

1、连接终端

进入docker容器之后,在命令行中输入sqlplus system/oracl,提示输入用户名和密码

root@3a06527c1048:/# sqlplus system/oracl

SQL*Plus: Release 11.2.0.2.0 Production on Tue Aug 8 04:18:40 2023

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

ERROR:
ORA-01017: invalid username/password; logon denied

#输入用户名
Enter user-name: PP
#输入密码
Enter password: 

Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
# 如下则表明连接成功
SQL> 

1.1已经进入sqlplus终端

conn 账户名/密码

conn 账户名(再输密码)

1.2设置终端数据行和数据页的属性值

set linesize 500 每行最大字符(如果小了显示数据会折行)

set pagesize 5000 一次查询可以输出的内容(如果小了显示数据会折行)

1.3查看当前用户身份

select user from dual

show user

SQL> select user from dual
  2  
SQL> show user
USER is "PP"
SQL> 

2、创建用户

Oracle的身份验证分为两种:

  1. 当前登录的操作系统用户

  2. 数据内置账户

sys(相当于数据库的创建者/群主——只有一个)

如果以sqlplus sys as sysdba(密码可以随意,但是不对不能改密码),会被自动映射到操作系统身份(这个身份就是数据库的内置账户sys)

如果以sqlplus / as sysdba(不需要密码,但是也改不了密码),采用数据库内置的sys身份

可以启动、停止、配置服务器

system(相当于数据库的管理员/由群主创建授权——可以有多个)

一般用于数据和用户的维护

3、角色和权限

权限:一个操作的最小单元

​ create session

​ create table

​ create user

​ create procedure

角色:一组权限的集合(便于授权和管理)

​ dba

​ connect

​ resource

​ 由sys/system可以查看数据库中已有的角色,以及角色中已经包含了哪些权限

select grantee, privilege from dba_sys_privs where grantee = 'CONNECT';

select grantee, privilege from dba_sys_privs where grantee = 'RESOURCE';

SQL> select grantee, privilege from dba_sys_privs where grantee = 'CONNECT';

GRANTEE                        PRIVILEGE
------------------------------ ----------------------------------------
CONNECT                        CREATE SESSION

SQL> select grantee, privilege from dba_sys_privs where grantee = 'RESOURCE';

GRANTEE                        PRIVILEGE
------------------------------ ----------------------------------------
RESOURCE                       CREATE TRIGGER
RESOURCE                       CREATE SEQUENCE
RESOURCE                       CREATE TYPE
RESOURCE                       CREATE PROCEDURE
RESOURCE                       CREATE CLUSTER
RESOURCE                       CREATE OPERATOR
RESOURCE                       CREATE INDEXTYPE
RESOURCE                       CREATE TABLE

8 rows selected.

4、授权

  1. 由sys/system创建用户

create user pp0419 identified by pp0419;

  1. 由sys/system可以查看当前数据库中的所有用户账号

select username, account_status from dba_users

  1. 由sys/system授予用户可以登录数据库服务器的权限

grant create session to pp0419

或者

由sys/system授予用户可以登录数据库服务器的角色

grant connect to pp0419

  1. 由sys/system授予用户访问数据库资源的角色 (不能将一个整体角色中的某些权限拿出来授权)

grant resource to pp0419

# 由sys/system创建用户
SQL> create user pp0419 identified by pp0419;

User created.
# 由sys/system可以查看当前数据库中的所有用户账号
SQL> select username,account_status from dba_users;

USERNAME                       ACCOUNT_STATUS
------------------------------ --------------------------------
SYS                            OPEN
PP                             OPEN
PP0419                         OPEN
ANONYMOUS                      OPEN
AUTOTEST                       OPEN
SYSTEM                         EXPIRED(GRACE)
APEX_PUBLIC_USER               LOCKED
APEX_040000                    LOCKED
XS$NULL                        EXPIRED & LOCKED
OUTLN                          EXPIRED & LOCKED
XDB                            EXPIRED & LOCKED

USERNAME                       ACCOUNT_STATUS
------------------------------ --------------------------------
CTXSYS                         EXPIRED & LOCKED
MDSYS                          EXPIRED & LOCKED
FLOWS_FILES                    EXPIRED & LOCKED
HR                             EXPIRED & LOCKED

15 rows selected.
# 由sys/system授予用户可以登录数据库服务器的权限
SQL> grant create session to pp0419;

Grant succeeded.
# 由sys/system授予用户可以登录数据库服务器的角色
SQL> grant connect to pp0419;

Grant succeeded.
# 由sys/system授予用户访问数据库资源的角色(不能将一个整体角色中的某些权限拿出来授权)
SQL> grant resource to pp0419;

Grant succeeded.

5、管理

系统级权限/角色

  • with admin option系统级权限或者角色的传递

当sys/system在授予用户权限时,附加with admin option,就意味着该用户还可以将自己的这个权限/角色再传递授权给别人。

  • revoke权限/角色的撤销 (角色只能整体撤销,不能只撤销角色中的某些权限)

revoke create session from pp0419

reovke connect, resource from pp0419

注意

不能撤销一个角色中的某几个权限(只有撤销该整个角色)

6、账户管理

  • account lock/unlock用户账户的锁定和解锁(一定要由sys/system执行)

alter user scott account lock;

alter user scott account unlock;

  • password expire强制密码过期(一定要由sys/system执行)

alter user scott password expire;

对象级(一般是数据表、还有存储过程、视图等都属于数据对象)

一定要由数据对象的属主或者具有dba角色的用户才能授予

授予

grant select, update, delete, insert on scott.emp to pp0419;

grant all on scott.emp to pp0419;

撤销

revoke update, delete on scott.emp from pp0419;

注意:对于update还可以再细化到对哪些列允许更新

grant update(job, deptno) on scott.emp to pp0419;


with grant option对象级权限的传递(将自己拥有的别人的数据对象再授权第三方访问,属主或者dba一定要授予你再授权的选项)

grant select on scott.emp to pp0419 with grant option;

7、修改密码

  1. 修改自己的密码

password

passw

  1. dba角色可以修改其他用户密码

password scott

passw scott

alter user scott identified by tiger;


自己家中如何设置一个合适的用户去使用或者开发?

  1. 以sys或者操作系统管理员身份登录服务器

sqlplus sys as sysdba

sqlplus / as sysdba

  1. create user zhangsan identified by zhangsan;

  2. grant dba to zhangsan;

创建自定义角色

grant select, insert on t_user to r_1;

grant r_1 to pp2;

posted on 2023-08-08 16:27  JavaCoderPan  阅读(48)  评论(0编辑  收藏  举报

导航