`
zhanshi258
  • 浏览: 48107 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

oracle 基本权限管理

 
阅读更多

入门语句
Save c:\1.txt 把SQL存到文件  @ c:\1.txt 运行SQL语句
Desc emp; 描述Emp结构
Select * from tab; 查看该用户下的所有对象
如果在sys用户下: 查询Select * from emp; 会报错,原因:emp是属于scott,所以此时必须使用:select * from scott.emp;

 

加/解锁:alter user soctt account lock/unlock
修改密码:alter user scott identified by tiger;


创建数据库步骤:
1.首先,创建(新)用户:
    create user username identified by password;
    username:新用户名的用户名
    password: 新用户的密码
也可以不创建新用户,而仍然用以前的用户,如:继续利用scott用户

2.创建表空间:
    create tablespace tablespacename datafile 'd:\data.dbf' size xxxm;
    tablespacename:表空间的名字
    d:\data.dbf':表空间的存储位置
    xxx表空间的大小,m单位为兆(M)
3.将空间分配给用户:
   alter user username default tablespace tablespacename;
   将名字为tablespacename的表空间分配给username

4.给用户授权:
   一般在数据库中,一个用户的连接称为建立一个session,如果一个新的用户想访问数据库,则必须授予创建session 的权限.
   grant create session,create table,unlimited tablespace to username;
   在Oracle中提供了两个角色,可以直接将这两个角色给用户:CONNECT角色、RESOURCE角色:
   如:grant connect,resource to test ;

5.然后再以楼主自己创建的用户登录,登录之后创建表即可。
conn username/password;

6.删除用户
Drop user username;
如果该用户下面已经存在表等一些数据库对象。则必须用级联删除
Drop user username cascade;

 

1.查看所有用户:
   select * from dba_users;   一般用户看不到
   select * from all_users;  
   select * from user_users;  显示当前用户详细信息

2.查看用户或角色系统权限(直接赋值给用户或角色的系统权限):
   select * from dba_sys_privs;   一般用户看不到
   select * from user_sys_privs;  显示用户权限    *

3.查看角色(当前用户拥有的角色)所包含的权限
   sql>select * from role_sys_privs; 

5.查看所有角色:
   select * from dba_roles;  一般用户看不到

6.查看用户或角色所拥有的角色:
   select * from dba_role_privs; 
   select * from user_role_privs;      *

7.查看哪些用户有sysdba或sysoper系统权限(查询时需要相应权限)
   select * from V$PWFILE_USERS


对象权限
如果test要访问其他用户呢?例如,访问emp表。此时如果要想让其可以访问,则必须把scott用户下的emp表的查询权限给test。
GRANT 权限(select、update、insert、delete) ON schema.table TO 用户
|- GRANT select ON scott.emp TO test ;
|- Grant all on scott.emp to test; --将表相关的所有权限付给test
|- Grant update(ename) on emp to test; 可以控制到列(还有insert)

权限回收
REVOKE 权限 ON schema.table FROM 用户
|- REVOKE select ON scott.emp FROM test ;

 

某真实项目实例(BaoBao121) Linux下的操作
1:建立相应的目录并变更其所有者以及组
##建目录
#mkdir /opt/oracle/oradata/baobaodata
##变更所有者
#chown oracle /opt/oracle/oradata/baobaodata/
##变更组
#chgrp oinstall /opt/oracle/oradata/baobaodata/

2:创建表空间
##转到oracle用户执行操作,注意要有中划线
#su - oracle
##进入SQL操作
#sqlplus /nolog
SQL>connect / as sysdba
##执行创建表空间
SQL>create tablespace baobao121
datafile '/opt/oracle/oradata/baobaodata/baobao121.dbf' size 200M
autoextend on next 50M
extent management local
segment space management auto;

SQL>create temporary tablespace baobao121_temp
tempfile '/opt/oracle/oradata/baobaodata/baobao121_temp.dbf' size 50M
autoextend on next 50M
extent management local;

3:增加相关的用户及权限
##增加用户
SQL>create user baobao121 identified by baobao121
default tablespace baobao121
temporary tablespace baobao121_temp;

##增加权限
SQL>grant all privileges to baobao121;

##测试连接
SQL>conn baobao121/baobao121;
SQL>show user;
显示应为USER is "BAOBAO121"


权限概述
  权限是用户对一项功能的执行权力。在Oracle中,根据系统管理方式不同,将权限分为系统权限与实体权限两类。系统权限是指是否被授权用户可以连接到数据库上,在数据库中可以进行哪些系统操作。而实体权限是指用户对具体的模式实体(schema)所拥有的权限。这样讲可以有些模糊,举个例子来说:select any table是系统权限,它表示可以查看任何表。而select on table1是实体权限,表示对表table1的查询权限。

 

系统权限授权命令的使用:
语法: grant 权限名 to 用户|角色|public
其中,public表示将权限赋给数据库中所有的用户
例:赋给用户USER1权限CREATE TABLE的授权命令如下:
SQL>grant create table to USER1;
授权语句还可以增加with admin option选项,表示被授权的用户可以将它所得权限赋给其它用户,如:
SQL>grant create table,create view to USER1,USER2 with admin option; 
若要回收权限,则使用REVOKE命令,如:
SQL>revoke create table from USER1;

 

实体权限管理
语法如下:
GRANT 实体权限名|ALL TO 用户|角色|PUBLIC 其中,ALL表示实体的所有实体权限。
如: SQL>grant select on books_quthor to USER1;
以下语句用来查询表的实体权限的授权信息:
SQL>select * from user_tab_privs;
若要回收实体权限,使用REVOKE,其语法如下:
REVOKE 实体权限名|ALL ON 实体名 FROM 用户名|角色名|PUBLIC。

 

角色:
create role myrole; //创建角色
grant create session to myrole //将创建session的权限授予myrole
grant myrole to zhangsan //授予zhangsan用户myrole的角色
drop role myrole;
//有些权限是不能授予给角色的,比如unlimited tablespace 和 any 关键字


    alter any cluster 修改任意簇的权限
  alter any index 修改任意索引的权限
  alter any role 修改任意角色的权限 alter any cluster
  alter any sequence 修改任意序列的权限
  alter any snapshot 修改任意快照的权限
  alter any table 修改任意表的权限
  alter any trigger 修改任意触发器的权限
  alter cluster 修改拥有簇的权限
  alter database 修改数据库的权限
  alter procedure 修改拥有的存储过程权限
  alter profile 修改资源限制简表的权限
  alter resource cost 设置佳话资源开销的权限
  alter rollback segment 修改回滚段的权限
  alter sequence 修改拥有的序列权限
  alter session 修改数据库会话的权限
  alter sytem 修改数据库服务器设置的权限
  alter table 修改拥有的表权限
  alter tablespace 修改表空间的权限
  alter user 修改用户的权限
  analyze 使用analyze命令分析数据库中任意的表、索引和簇
  audit any 为任意的数据库对象设置审计选项
  audit system 允许系统操作审计
  backup any table 备份任意表的权限
  become user 切换用户状态的权限
  commit any table 提交表的权限
  create any cluster 为任意用户创建簇的权限
  create any index 为任意用户创建索引的权限
  create any procedure 为任意用户创建存储过程的权限
  create any sequence 为任意用户创建序列的权限
  create any snapshot 为任意用户创建快照的权限
  create any synonym 为任意用户创建同义名的权限
  create any table 为任意用户创建表的权限
  create any trigger 为任意用户创建触发器的权限
  create any view 为任意用户创建视图的权限
  create cluster 为用户创建簇的权限
  create database link 为用户创建的权限
  create procedure 为用户创建存储过程的权限
  create profile 创建资源限制简表的权限
  create public database link 创建公共数据库链路的权限
  create public synonym 创建公共同义名的权限
  create role 创建角色的权限
  create rollback segment 创建回滚段的权限
  create session 创建会话的权限
  create sequence 为用户创建序列的权限
  create snapshot 为用户创建快照的权限
  create synonym 为用户创建同义名的权限
  create table 为用户创建表的权限
  create tablespace 创建表空间的权限
  create user 创建用户的权限
  create view 为用户创建视图的权限
  delete any table 删除任意表行的权限
  delete any view 删除任意视图行的权限
  delete snapshot 删除快照中行的权限
  delete table 为用户删除表行的权限
  delete view 为用户删除视图行的权限
  drop any cluster 删除任意簇的权限
  drop any index 删除任意索引的权限
  drop any procedure 删除任意存储过程的权限
  drop any role 删除任意角色的权限
  drop any sequence 删除任意序列的权限
  drop any snapshot 删除任意快照的权限
  drop any synonym 删除任意同义名的权限
  drop any table 删除任意表的权限
  drop any trigger 删除任意触发器的权限
  drop any view 删除任意视图的权限
  drop profile 删除资源限制简表的权限
  drop public cluster 删除公共簇的权限
  drop public database link 删除公共数据链路的权限
  drop public synonym 删除公共同义名的权限
  drop rollback segment 删除回滚段的权限
  drop tablespace 删除表空间的权限
  drop user 删除用户的权限
  execute any procedure 执行任意存储过程的权限
  execute function 执行存储函数的权限
  execute package 执行存储包的权限
  execute procedure 执行用户存储过程的权限
  force any transaction 管理未提交的任意事务的输出权限
  force transaction 管理未提交的用户事务的输出权限
  grant any privilege 授予任意系统特权的权限
  grant any role 授予任意角色的权限
  index table 给表加索引的权限
  insert any table 向任意表中插入行的权限
  insert snapshot 向快照中插入行的权限
  insert table 向用户表中插入行的权限
  insert view 向用户视图中插行的权限
  lock any table 给任意表加锁的权限
  manager tablespace 管理(备份可用性)表空间的权限
  references table 参考表的权限
  restricted session 创建有限制的数据库会话的权限
  select any sequence 使用任意序列的权限
  select any table 使用任意表的权限
  select snapshot 使用快照的权限
  select sequence 使用用户序列的权限
  select table 使用用户表的权限
  select view 使用视图的权限
  unlimited tablespace 对表空间大小不加限制的权限
  update any table 修改任意表中行的权限
  update snapshot 修改快照中行的权限
  update table 修改用户表中的行的权限
  update view 修改视图中行的权限

 

分享到:
评论

相关推荐

    10 oracle管理权限和角色 PPT

    22. 角色的依赖分析(Role Dependency Analysis):使用DBA_ROLE_PRIVS和DBA_TAB_PRIVS视图可以帮助分析角色和权限之间的关系,以优化权限管理。 以上就是Oracle管理权限和角色的关键知识点,这些概念和操作是...

    Oracle权限大全

    Oracle 权限大全对权限管理非常严谨,普通用户之间默认不能互相访问,需要互相授权。 授予权限是 Oracle 权限大全的重要内容,包括授予创建 session 的权限、授予使用表空间的权限、授予创建表的权限、授予删除表...

    ORACLE数据库的权限管理与资源分配.pdf

    Oracle数据库的权限管理和资源分配是数据库管理中的关键环节,对于保证数据安全性、系统性能和稳定性至关重要。在四川绵阳电信分公司的实例中,由于初期的开放式管理模式,开发人员、维护人员和查询人员对数据库的...

    oracle权限管理基础

    Oracle权限管理是数据库系统中至关重要的一个环节,它确保了数据的安全性和访问控制。在Oracle 10g和11g版本中,权限管理机制经过精心设计,为管理员提供了多种工具和策略来管理用户访问权限。本文将深入探讨Oracle...

    oracle 权限

    ### Oracle权限管理详解 在Oracle数据库管理中,权限管理是一项重要的功能,它涉及到数据库的安全性和数据访问控制。本文将基于提供的文件信息,详细介绍Oracle中如何创建用户、分配及撤销权限等关键操作,并深入...

    oracle权限管理

    ### Oracle权限管理详解 在Oracle数据库管理中,权限管理是一项非常重要的任务,它涉及如何控制用户对数据库资源的访问以及他们能执行的操作类型。本文将详细介绍Oracle中的权限管理概念、不同类型的权限及其授予与...

    Oracle 权限管理

    ### Oracle权限管理详解 ...本文档介绍了Oracle权限管理的基本概念、系统权限与对象权限的管理方法,以及如何利用角色进行更灵活的权限分配。对于Oracle数据库管理员而言,掌握这些基础知识是非常重要的。

    oracle中的权限

    在Oracle数据库系统中,权限管理是确保数据安全性与完整性的重要机制。权限的分配与管理是数据库管理员(DBA)和系统管理员的核心职责之一。本文将深入探讨Oracle中的权限概念、类型以及如何进行权限的授予与回收。 ...

    Oracle用户、权限、角色管理

    例如,`DBA`角色包含所有系统管理员所需的权限,而`CONNECT`角色则包含用户登录数据库所需的基本权限。角色可以被授予给用户,从而自动赋予该用户所有属于该角色的权限。 #### 四、系统权限管理细节 - **权限授予...

    Oracle设置用户权限

    在Oracle数据库中,创建新用户是一项基本且重要的管理任务。通过创建用户并分配相应的权限,可以确保数据的安全性和完整性。 ##### 步骤: 1. **打开命令行工具**: - 打开命令行或终端窗口。 - 输入`sqlplus / ...

    Oracle权限

    ### Oracle权限管理详解 #### 一、Oracle权限概述 Oracle数据库通过权限管理机制来确保数据的安全性和完整性。权限主要包括系统权限(SYS PRIVILEGES)和对象权限(OBJECT PRIVILEGES)。系统权限允许用户执行特定...

    oracle权限设置

    除了上述提到的基本权限设置命令外,还有其他一些重要的知识点需要了解: 1. **序列对象的创建与删除** ```sql create sequence seq_project minvalue 1 maxvalue 9999 start with 1 increment by 1 cache ...

    Oracle数据库学生管理系统

    【Oracle数据库学生管理系统】是一个...总的来说,"Oracle数据库学生管理系统"是一个集成了数据库管理、用户权限控制、Web服务通信和前端交互技术的综合信息系统,旨在提升学校管理效率,满足信息化时代的教育需求。

    oracle用户的权限详细说明以及赋权的操作

    Oracle数据库的权限管理是关系数据库管理系统(RDBMS)中非常关键的一部分。它允许数据库管理员(DBA)对用户进行精细化的权限控制,以确保数据的安全性和完整性。在Oracle中,权限可以细分为系统权限(System Privileges...

    Oracle9i企业管理器详解,是学习Oracle9i企业管理器的最好教程。

    3. 安全管理:OEM提供用户和权限管理,可以创建、修改和删除用户,配置角色和权限,确保数据库的安全性。 4. 备份与恢复:OEM支持自动备份策略,可以创建、调度和管理数据库备份,并在需要时进行数据恢复。 5. 作业...

    使用PLSQL 创建Oracle数据库用户并设置权限

    "使用PLSQL创建Oracle数据库用户并设置权限" 在 Oracle 数据库中,创建用户并设置权限是...3. Oracle 数据库管理员指南: Oracle 数据库管理员指南提供了详细的数据库管理指南,包括用户管理、权限管理和表管理等。

    Oracle系统权限和对象权限

    综上所述,Oracle的权限管理系统为用户提供了一个强大且灵活的框架,不仅支持基本的数据操作,还能满足高级的管理需求。通过深入了解这些权限类型及其使用方法,可以显著提高数据库的安全性和效率。

    oracle用户管理PPT

    Oracle用户管理是数据库管理系统中的核心组成部分,它涉及到数据库的安全性、权限控制以及不同角色的划分。在Oracle中,用户管理主要包括创建、管理、权限分配和撤销等操作,以确保数据库的稳定运行和数据的安全。 ...

    oracle9i企业管理器详解

    在学习Oracle 9i企业管理器时,建议先了解基本的Oracle数据库概念,如表空间、用户、权限和SQL语法。然后,逐步探索企业管理器的各项功能,通过实际操作来熟悉其工作流程。《Oracle9i企业管理器详解》这份资料应会...

    oracle用户权限管理使用详解

    Oracle数据库的用户权限管理是其核心安全特性之一,它确保了数据的安全性和隔离性。本文将深入探讨Oracle的用户权限管理,包括默认用户、用户创建、权限授予以及用户间的访问控制。 首先,Oracle数据库提供了几个...

Global site tag (gtag.js) - Google Analytics