一、查看用户及权限

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. Selenium_单选框和复选框的选中状态判定以及元素是否可用和可见判定(10)

    简单写个单选框和复选框界面 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /&g ...

  2. android studio 获取 SHA1 值

    1. 生成密钥文件 2.找到控制台 输入指令 cd c: cd C:\Users\[当前登录的用户文件夹]\.android 如 cd C:\Users\cenxi\.android 就是这里 然后输 ...

  3. 深度分析 [go的HttpClient读取Body超时]

    故障现场 本人负责的主备集群,发出的 HttpClient 请求有 30%概率超时, 报context deadline exceeded (Client.Timeout or context can ...

  4. 《剑指offer》面试题10- II. 青蛙跳台阶问题

    问题描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该青蛙跳上一个 n 级的台阶总共有多少种跳法. 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008, ...

  5. 《剑指offer》面试题32 - II. 从上到下打印二叉树 II

    问题描述 从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行. 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 ...

  6. [Eclipse插件] 编辑插件IndentGuide

    IndentGuide插件 将可配置的缩进指导线添加到Eclipse文本编辑器 如下图

  7. Cesium入门2 - Cesium环境搭建及第一个示例程序

    Cesium入门2 - Cesium环境搭建及第一个示例程序 Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ 验 ...

  8. QMainWindow(二)

    mainwindow.h: #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> class MainWindo ...

  9. gorm中的更新

    保存所有字段 Save 会保存所有的字段,即使字段是零值. db.First(&user, 5)user.Name = sql.NullString{"王八", true} ...

  10. CTF web安全45天入门学习路线

    前言 因为最近在准备开发CTF学习平台,先做一个学习路线的整理,顺便也是对想学web的学弟学妹的一些建议. 学习路线 初期 刚刚走进大学,入了web安全的坑,面对诸多漏洞必然是迷茫的,这时的首要任务就 ...