Oracle系列:(26)用户权限控制

1、用户

Oracle中的用户分为二大类

1)Oracle数据库服务器创建时,由系统自动创建的用户,叫系统用户,如sys。

2)利用系统用户创建的用户,叫普通用户,如scott,hr,c##tiger,zhaojun,...

》用sys登录,查询当前Oracle数据库服务器中已有用户的名字和状态

username表示登录名

expired&locked表示帐号过期和锁定

open表示帐号现在可用

  sqlplus / as sysdba;
  col username for a30;
  col account_status for a30;
  set pagesize 100;
  select username,account_status from dba_users;

查询Oracle中有哪些用户

  select * from all_users;

2、创建与删除普通用户

可以在Oracle中创建新的普通用户,创建普通用户命令是:create user,在创建普通用户的同时,应该为其分配一个具体的表空间,通常叫users。

》用sys登录,查询Oracle中有哪些可用存储空间,所有普通用户默认为users存储空间

  select * from v$tablespace;

》用sys登录,创建普通用户c##tiger,密码为abc,默认使用users存储空间,即对应硬盘上的一个DBF二进制文件

  sqlplus / as sysdba;
  create user c##tiger identified by abc default tablespace users;

》用sys登录,为c##tiger分配users空间无限制使用,即数据库中DBF文件可以无限增加,一个DBF文件不够,会创建第二个DBF文件

  sqlplus / as sysdba;
  alter user c##tiger quota unlimited on users;

》用c##tiger登录,能进orcl数据库吗?

  sqlplus c##tiger/abc

进不去orcl数据库

》用sys登录,删除普通用户c##tiger

  sqlplus / as sysdba;
  drop user c##tiger cascade;

3、了解系统用户

sys是Oracle中一个重要的系统用户,sys是Oracle中最高权限用户,其角色为SYSDBA(系统管理员)

sqlplus / as sysdba

4、权限

权限的最终作用于用户。即所有用户在数据库内的操作对象和可执行的动作都是受到限制的。

Oracle中权限分为二大类:

1)系统权限

2)对象权限

4.1、系统权限

针对数据库中特定操作的许可,例如:让c##tiger能登录到orcl数据库,能在orcl数据库中创建表

》用sys登录,获取系统权限的相关信息,例如:select any table表示针对所有表的select权限

  sqlplus / as sysdba;
  select distinct privilege from dba_sys_privs;

》用sys登录,为c##tiger分配create session与数据库建立会话的权限,即允许该用户登录

  sqlplus / as sysdba;
  grant create session to c##tiger;

》用c##tiger登录,能进orcl数据库吗?

  sqlplus c##tiger/abc

能进去orcl数据库

》用c##tiger登录,创建一张tiger的表,能创建吗?

  sqlplus c##tiger/abc
  create table tiger(
    name varchar2(20)
  );

这时c##tiger没有权限创建表

》用sys登录,为c##tiger分配create table权限,即允许创建表

  sqlplus / as sysdba;
  grant create table to c##tiger;

》用c##tiger登录,创建一张tiger的表,能创建吗?

  sqlplus c##tiger/abc
  create table tiger(
    name varchar2(20)
  );

可以创建c##tiger表

》用sys登录,查询c##tiger所拥有的系统权限

sqlplus / as sysdba;

  select grantee,privilege from dba_sys_privs where lower(grantee) = ‘c##tiger‘;

grantee表示普通用户名

privilege权限名

》用sys登录,撤销c##tiger的create table权限

  sqlplus / as sysdba;
  revoke create table from c##tiger;

4.2、对象权限

用户对已有对象的操作权限,包括:

1)select可用于表,视图和序列

2)insert向表或视图中插入新的记录

3)update更新表中数据

4)delete删除表中数据

5)execute函数,过程的执行

6)index为表创建索引

7)references为表创建外健

8)alter修改表或者序列的属性

》用sys登录,查询c##tiger所拥有的对象权限

  sqlplus / as sysdba;
  col grantee for a10;
  col table_name for a10;
  col privilege for a20;
  select grantee,table_name,privilege from dba_tab_privs where lower(grantee) = ‘c##tiger‘;

》用sys登录,为c##tiger分配对tiger表的所有权限,即增删改查操作

  sqlplus / as sysdba;
  grant all on c##tiger.tiger to c##tiger;

注意:c##tiger表示空间名

tiger表示该空间下的表名

C##TIGER   TIGER      FLASHBACK

C##TIGER   TIGER      DEBUG

C##TIGER   TIGER      QUERY REWRITE

C##TIGER   TIGER      ON COMMIT REFRESH

C##TIGER   TIGER      REFERENCES

C##TIGER   TIGER      UPDATE

C##TIGER   TIGER      SELECT

C##TIGER   TIGER      INSERT

C##TIGER   TIGER      INDEX

C##TIGER   TIGER      DELETE

C##TIGER   TIGER      ALTER

》用c##tiger登录,对tiger表进行增删改查操作

  sqlplus c##tiger/abc;
  insert into tiger(name) values(‘AA‘);
  update tiger set name = ‘BB‘;
  delete from tiger where rownum = 1;
  select * from tiger;
时间: 2024-12-08 22:28:09

Oracle系列:(26)用户权限控制的相关文章

2.4.3、Django用户权限控制

上面已经实现了登录和注销功能,但是还没起作用. 我们需要在每个视图函数里加上限制@login_required 如下: from django.contrib.auth.decorators import login_required ... ... @login_required def data_daka(request): all = class.objects.all() ... ... login_required实现了如下功能: 如果用户没有登录, 重定向到/accounts/log

springmvc+spring+mybatis+maven项目集成shiro进行用户权限控制【转】

项目结构: 1.maven项目的pom中引入shiro所需的jar包依赖关系 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <dependency>     <groupid>javax.servlet</groupid>     javax.servlet-api</artifactid>     <version>3.0.1</version>

用户权限控制之命令篇

背景:如果数据库启动没有启用权限控制,那么只要通过IP,PORT就能连上,危险性很高,所有要设置用户访问权限.一.在未设置权限状态下,增加访问用户.> use adminswitched to db admin>db.system.users.find()> db.createUser( {user:"myUserAdmin",pwd:"abc123",roles:[{role:"readWriteAnyDatabase",db

[转]oracle中查看用户权限

本文转自:http://www.cnblogs.com/QDuck/archive/2010/08/11/1797225.html 1.查看所有用户:   select * from dba_users;   select * from all_users;   select * from user_users; 2.查看用户或角色系统权限(直接赋值给用户或角色的系统权限):   select * from dba_sys_privs;   select * from user_sys_priv

oracle查看当前用户权限

--查看用户和默认表空间的关系select username,default_tablespace from dba_users;--查看当前用户能访问的表select * from user_tables; --Oracle查询用户表select * from user_all_tables; --Oracle查询用户视图select * from user_views;--查询所有函数和储存过程:select * from user_source;--查询所有用户:select * from

Mysql用户权限控制(5.7以上版本)

1.1. 最简单的MySql权限   最简单也是最高效的,如果解决新手们删库跑路的问题其实也是很简单的,对于正式库只给一个增删改查的权限,或者只给一个查询权限(是不是就解决了删库的可能性?) 以下内容如果看官是大牛,请稍安勿躁,我讲内容的方式是从简单到入门,从入门到进阶,从进阶到实战,从实战到...(包你满意) 使用Root用户,执行 grant SELECT on mall.* TO 'dev'@'192.168.244.%' IDENTIFIED BY '123' WITH GRANT OP

如何通过excel实现用户权限控制

在程序设计中,为了让程序更好的适应每个用户的不同需求,我们经常需要给角色设置一定权限,权限的设置有很多的方式,这篇文章主要介绍一下如何通过excel表格来设置用户权限. 我们现在要实现一个功能,不同用户登录以后,下拉框中显示不同的城市,这里的城市是已经配置好的城市. 原来的城市是没有添加任何权限的,显示效果如下: 实现代码如下: ProjectCityWrapperCollection projectCityCollection = ExternalDataHelper.GetProjectCi

MongoDB 3.X 用户权限控制

摘要: MongoDB 3.0 安全权限访问控制,在添加用户上面3.0版本和之前的版本有很大的区别,这里就说明下3.0的添加用户的方法. 环境.测试: 在安装MongoDB之后,先关闭auth认证,进入查看数据库,只有一个local库,admin库是不存在的: [email protected]:/usr/local/mongo4# mongo --port=27020 MongoDB shell version: 3.0.4 connecting to: 127.0.0.1:27020/tes

mongodb 用户权限控制

MongoDB已经使用很长一段时间了,基于MongoDB的数据存储也一直没有使用到权限访问(MongoDB默认设置为无权限访问限制),今天特地花了一点时间研究了一下,研究成果如下: 注:研究成果基于Windows平台 MongoDB在本机安装部署好后 1. 输入命令:show dbs,你会发现它内置有两个数据库,一个名为admin,一个名为local.local好像没啥用,如果哪位在使用过程中发现了这个local表的用途,希望能够留言提醒,那我们就专心来说说admin表 2. 输入命令:use