一、查看用户及权限

1.查询所有用户:

1.1、查看所有用户基本信息

select * from all_users;

1.2、查看所有用户相信信息

select * from dba_users;

2.查看用户权限

2.1 查看所有用户

SELECT * FROM DBA_USERS;
SELECT * FROM ALL_USERS;
SELECT * FROM USER_USERS;

2.2 查看用户或角色所拥有的角色

SELECT * FROM DBA_ROLE_PRIVS;
SELECT * FROM USER_ROLE_PRIVS;

2.3 查看用户对象或角色权限

SELECT * FROM DBA_TAB_PRIVS;
SELECT * FROM ALL_TAB_PRIVS;
SELECT * FROM USER_TAB_PRIVS;

2.4 查看所有角色

SELECT * FROM DBA_ROLES;

2.5 查看用户系统权限

SELECT * FROM DBA_SYS_PRIVS;
SELECT * FROM USER_SYS_PRIVS;

2.6 遇到no privileges on tablespace ‘tablespace ‘

alter user userquota 10M[unlimited] on tablespace;

二、创建用户并授予权限

1、创建用户

创建用户与创建的表空间文件形成映射关系(用户名为zldc,密码为zldc),及创建用户并设置用户表空间

CREATE USER zldc IDENTIFIED BY zldc DEFAULT TABLESPACE zldc TEMPORARY TABLESPACE zldc_temp;

附加:

1).更改用户密码

alter user username identified by passwd;

2).解锁用户

ALTER USER 用户名 ACCOUNT UNLOCK;

2.1)、那么遇到这种用户会被锁的情况,我们可以设置用户密码无限次尝试登录,而该用户不会被锁定:

ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;

2.2)、另外,做项目运维的小伙伴经常遇到数据库用户密码过期的情况,要定期去修改密码很麻烦,那么我们可以设置用户密码不过期:

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

2、添加权限

首先授权用户testuser两个基本的角色权限

CONNECT角色:    –是授予最终用户的典型权利,最基本的
CREATE SESSION –建立会话
RESOURCE角色: –是授予开发人员的 CREATE CLUSTER –建立聚簇
CREATE PROCEDURE –建立过程
CREATE SEQUENCE –建立序列
CREATE TABLE –建表
CREATE TRIGGER –建立触发器
CREATE TYPE –建立类型
CREATE OPERATOR –创建操作者
CREATE INDEXTYPE –创建索引类型
CREATE TABLE –创建表

参考:

GRANT
  CREATE SESSION, CREATE ANY TABLE, CREATE ANY VIEW ,CREATE ANY INDEX, CREATE ANY PROCEDURE,
  ALTER ANY TABLE, ALTER ANY PROCEDURE,
  DROP ANY TABLE, DROP ANY VIEW, DROP ANY INDEX, DROP ANY PROCEDURE,
  SELECT ANY TABLE, INSERT ANY TABLE, UPDATE ANY TABLE, DELETE ANY TABLE
TO username;
授权角色给用户的sql语句:
GRANT role TO username;
实例:
grant connect,resource,dba to zldc;
grant create session to zldc;
GRANT SELECT ON "DNINMSV31"."V_DNDEVICE" TO zldc;

附:授予某用户所有表的只读权限:

select 'grant select on '||owner||'.'||object_name||' to username;'
from dba_objects
where owner in ('databasename') and object_type='TABLE';

或:

1.创建角色
CREATE ROLE SELECT_ROLE 
2.给角色分配权限
grant SELECT ANY DICTIONARY to SELECT_ROLE;
grant SELECT ANY TABLE to SELECT_ROLE;
grant SELECT ANY TRANSACTION to SELECT_ROLE;
grant SELECT ANY SEQUENCE to SELECT_ROLE;
3.把角色赋予指定账户
grant SELECT_ROLE to user; 
4.删除角色
drop role SELECT_ROLE;
5.检查角色的权限
select * from dba_sys_privs where grantee='SELECT_ROLE'
测试权限的时候需要加上用户的对象例如
select count(*) from hr.ex_user;

3、创建同义词供对方公司系统访问:

CREATE SYNONYM V_DNDEVICE FOR DNINMSV31.V_DNDEVICE;
CREATE SYNONYM V_DNSUBNE FOR DNINMSV31.V_DNSUBNE;
CREATE SYNONYM V_DNPACKAGE FOR DNINMSV31.V_DNPACKAGE;
CREATE SYNONYM V_DNPORT FOR DNINMSV31.V_DNPORT;

解释:第三方的系统直接通过这个同义词就可以访问到用户DNINMSV31中的视图,这也是对系统安全的一种保护措施:第三方系统登录后,只能看到其同义词,其他的都不会访问得到

4、最后还要对NORTHBOUND用户进行连接数的限制,以免第三方无限制的连接数据库,造成数据库SESSION暴涨:

conn / as sysdba
alter system set resource_limite=true scope=both sid='*';

5、新建profile, 初始限制为1 ,用于测试。

create profile third_user limit SESSIONS_PER_USER 1 FAILED_LOGIN_ATTEMPTS unlimited;

alter user NORTHBOUND profile third_user;

6、将会话数调整到30

alter profile third_user limit SESSIONS_PER_USER 30;

三、更改用户的默认表空间

1、修改用户的永久表空间:

alter user user default tablespace tablespaceName;

其中第二个user为要操作的用户,tablespaceName为将要设置的默认表空间名称。

2、修改新添加的用户的默认表空间:

alter database default tablespace tablespaceName;

这样新建立的用户的默认表空间就为tablespaceName。

四、删除用户:

1、删除用户

drop user zldc cascade;

如果有用户和这个库建立连接,这里删除会提示失败:ORA-01940: cannot drop a user that is currently connected,需要先kill掉这个用户会话才能删除用户及用户下的数据

Oracle用户创建、删除和授权等方法总结的更多相关文章

  1. ORACLE用户创建&删除

    ●sqlplus登陆sqlplus sys/isc@testgmmc as sysdba●创建用户create user testpoi3 IDENTIFIED by iscaccount unloc ...

  2. Oracle用户创建及删除

    偶尔会用到,记录.分享. 1. Oracle用户创建 #创建用户表空间create tablespace $username datafile '/u01/app/oracle/oradata/ufg ...

  3. 对oracle用户创建asm磁盘

    --root用户执行vi /etc/sysctl.conf #Install oracle settingfs.aio-max-nr = 1048576fs.file-max = 6815744#ke ...

  4. oracle数据库用户创建删除以及数据导入

    dmp文件的导入:1.首先,先创建表空间与用户--创建表空间create tablespace CCFOCUS01datafile 'D:\app\Administrator\oradata\orcl ...

  5. oracle用户创建及权限设置及表空间

    建立表空间: create tablespace portx_data datafile 'D:\oracle_data\portx.dbf' size 50m autoextend on next ...

  6. oracle用户创建及权限设置

    权限: create session create table unlimited tablespace connect resource dba 例: #sqlplus /nolog SQL> ...

  7. [转载]Oracle用户创建及权限设置

    出处:https://www.cnblogs.com/buxingzhelyd/p/7865194.html 权限: create session  允许用户登录数据库权限 create table  ...

  8. 转载:oracle用户创建及权限设置

    权限: create session create table unlimited tablespace connect resource dba 例: #sqlplus /nolog SQL> ...

  9. oracle用户创建及权限设置(转)

    权限: create session create table unlimited tablespace connect resource dba 例: #sqlplus /nolog SQL> ...

随机推荐

  1. 初识python之词组截取及翻译

    d = {} k = [] v = [] with open('dir','r',encoding='utf-8') as f: for i in f.readlines(): j = i.strip ...

  2. springboot 配置 swagger2

    1.pom.xml 添加依赖 <!--swagger2 依赖--> <dependency> <groupId>io.springfox</groupId&g ...

  3. [Win32] UAC用户账户控制 (提权)

    最近写程序时遇到一个问题,就是当一个程序需要管理员权限才能正常运行该怎么办? 通过查阅多方资料,我总结出来几个比较实用的办法(每种办法实现方法不同,同时功能上也有一些小小的差异) 方法一(批处理脚本) ...

  4. C语言 运算符优先级和结合方向

    运算符优先级和结合方向 初级运算符( ).[ ].->..  高于  单目运算符  高于  算数运算符(先乘除后加减)  高于  关系运算符  高于  逻辑运算符(不包括!)  高于  条件运算 ...

  5. Leetcode系列之两数之和

    Leetcode系列之两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标.你可以假设每种输入只会对应一个答案.但是,你 ...

  6. 获取iframe外的document

    在iframe中点击弹出层外部分弹出层消失,但是点击iframe外部分就操作不了弹出层了,被这个问题困扰了不少时间,今天得以解决,代码如下: 说明:$(top.document,document).c ...

  7. 接口神器之 Json Server 详细指南

    简介 json-server 是一款小巧的接口模拟工具,一分钟内就能搭建一套 Restful 风格的 api,尤其适合前端接口测试使用. 只需指定一个 json 文件作为 api 的数据源即可,使用起 ...

  8. Quay v3.5.1 部署踩坑

    官方文档好久没更新了 拿来部署了一个最新的软件 把我坑死了 首先你需要一个podman OR docker 官方用podman 本文同 设置 Postgres 官方推荐数据库 $ mkdir -p $ ...

  9. fastjson字符串转JSON的$ref问题

    先说结论: fastjson在把对象转换成字符串的时候,如果遇到相同的对象的时候,默认开启引用检测将相同的对象写成引用的形式. 官网文档:https://github.com/alibaba/fast ...

  10. 使用PostGIS完成两点间的河流轨迹及流经长度的计算

    基础准备工作 1.PostGIS 的安装 在安装PostGIS前首先必须安装PostgreSQL,然后再安装好的Stack Builder中选择安装PostGIS组件.具体安装步骤可参照 PostGI ...