`
eric.zhang
  • 浏览: 127374 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

oracle学习笔记九(管理权限和角色)

阅读更多
管理权限和角色
刚创建的用户,没有任何的权限,也不能执行任何操作,如果要执行某种
特定的数据库操作,则必须为其授予系统的权限,如果用户要访问其它方案的对象,
则必须为其授予对象的权限,为了简化权限的管理,可以使用角色
权限:
系统权限,建库,建表,登录,创建用户等
对象权限

创建用户时,会自动创建一个方案,其名字与用户名相同

oracle 9i 有25种角色

系统权限是执行特定类型SQL命令的权利,它用于控制用户可以
执行的一个或是一组数据库操作,比如当用户具有create table权限时,可以在其
方案中建表,当用户具有create any table权限时,可以在任何方案中建表
常用的系统权限有:
create session连接数据库 create table 建表
create view 建视图 create public synonym 建同义词
create procedure 建过程,函数,包 create trigger 建触发器
create cluster 建簇

显示系统权限
oralce 提供了140种系统权限,显示所有系统权限
select * from system_privilege_map order by name;

授予系统权限
一般由DBA完成,如果用其它用户来授予系统权限,则要求该用户必须具有grant any privilege的系统权限,
在授予系统权限时,可以带有with admin option选项,这样,被授予权限的用户或是角色还可以将该系统权限授予其它
的用户或是角色

创建用户ken
create user ken identified by ken;
给ken授权
grant create session,create table to ken with admin options;
grant create view to kens;

通过ken给tom授权
grant create session,create table to tom;成功
grant create view to tom;  不成功

回收系统权限
一般情况,回收系统权限是由DBA来完成,如果其它的用户来回收系统权限,
要求该用户必须具有相应系统权限及转授系统权限的选项(with admin option)
,回收系统权限使用revoke来完成

system--ken---tom

用system执行如下操作
revoke create session from ken;
回收系统权限不是级联回收

对象权限:
常用的有:
alter 修改,delete 删除 select 查询 insert 添加 update,index,
references引用, execute执行

授予对象权限:
在oracle9i前,授予对象权限是由对象的所有者来完成,如果用其它的用户来操作
则需要用户具有相应的with grant option 权限,从oracle9i开始,DBA用户
sys,system可以将任何对象上的对象权限授予其它用户,授予对象权限是用grant命令来未完成的

对象权限可以授予用户,角色,和public,在授予授予权限时,如果带有
with grant option选项,则可以将该权限转授给其它用户
但是要注意with grant option选项不能被授予角色

有三种用户可以授权:system,sys,表所属的用户
monkey用户查询scott用户的emp表
使用scott用户给monkey用户授权;
grant select on emp to monkey;
grant all on emp to monkey;      all:select,delete,update

希望monkey只能修改scott.emp的表的sal字段,授权如下:
grant update on emp(sal) to monkey;

授予alter权限
如果black用户要修改scott.emp表的结构,则必须授予alter对象权限
grant alter on emp to black

授予index权限
black可以在scott.emp上建立索引:
grant index on scott.emp to black

with grant option  只能用在用户上

回收对象权限:
在oracle9i中,收回对象的权限可以由对象的所有者来完成,也可以用dba用户(sys,system)
来完成,对象的权限是级联回收的
conn scott/tiger@myoral
revoke select on emp from black

补充:
   

用户名,权限,角色:
在建立用户时,oracle会把用户的信息存放到数据字典中,当给
用户授予权限或角色时,oracle会将权限和角色的信息存放到数据字典,
通过查询dba_users可以显示所有数据库用户的详细信息
通过查询数据字典视图dba_sys_privs可以显示用户所具有的系统权限
通过查询数据字典视图dba_tab_privs可以显示用户具有的对象权限
通过是是查询数据字典dba_col_privs可以显示用户具有的列权限
通过是查询数据库字典视图dba_role_privs可以显示用户所具在的角色

如:scott用户具有什么角色:
select * from dba_role_privs where grantee='scott';
角色:包含多个权限,给用户分配角色,
怎么查询一个角色包含的权限?
查询某个角色包括哪些系统权限:
select * from dba_sys_privs where grantee='CONNECT'
select * from dba_sys_privs where grantee='DBA
或者 select * from role_sys_privs where role='CONNECT''
查询某个角色包括的对象权限:
select * from dba_tab_privs where grantee='角色名'
select * from dba_tab_privs where grantee='CONNECT'


查询oracle中所有的系统权限,一般是dba
select * from system_privilege_map order by name;
查询oralce中所有的角色? 一般是DBA
select * from dba_roles
查询oracle中所有对象权限,一般是DBA,
select distinct privilege from dba_tab_privs;
查询数据库的表空间
select tablespace_name from dba_tablespaces;

对象权限:针对对象而言
数据权限:针对系统而言

如果查看某个用户具有什么样的角色?
select * from dba_role_privs where grantee='用户名';
如:select * from dba_role_privs where grantee='scott'

显示当前用户可以访问的所有数据字典视图:
select * from dict where comments like '%grant%';

显示当前数据库的全称:
select * from global_name;




-----------------------------查看用户权限--------------------------------------------------------------

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.查看用户对象权限:
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;
4.查看所有角色:
select * from dba_roles;
5.查看用户或角色所拥有的角色:
select * from dba_role_privs;
select * from user_role_privs;


Sql*plus 常用命令:

连接命令:
1 conn
用法: conn 用户名/密码 @网络服务器名 【as sysdba/sysoper】,当特权用户连接时,必需带上 as sysdba或者是as sysoper;
conn system/manager as sysdba;


Start命令:执行文件里的sql语句:如d:\aa.sql的文件
Start d:\aa.sql;或者  @  d:\aa.sql;

Spool 命令,,把屏幕上的信息输入到文件里去。Spool d:\dd.sqp   select 语句 spool off;

Set linesize 120;
Set pagesize 5;

创建用户:必须是管理员才有创建用户的权限

Create user eric identified by aa123456;
创建的新数据库是没有任何权限的,连登录数据库的权限都没有;

修改用户密码:
passw 命令;修改自己的密码

管理员给用户修改密码
passsword eric;


删除用户:也是需要有dba的身份去删除。自己不能删除自己;
如果要删除的用户,已经创建了表,那么就需要在删除时带一个参数 cascade;(级联删除表)


oracle安装成功后,会默认生成三个用户:
sys用户:超级管理员,权限最高,它的角色dba,密码是change_on_install
system用户:是系统管理员,权限也很高,它的角色是dbaoper 密码是manager;
scott用户:普通用户,密码是tiger;

sys与system
sys 有create database的权限,而system没有。其它相似;

在日常对oracle管理过程中,使用system就够了。


权限管理:
登录数据库权限:(system,sys可以给用户赋权限)
grant connect to eric;
(其中connect 是角色;dba角色,resource角色可以让用户在任何表空间建表)

权限分两种:
系统权限:用户对数据库的相关权限;如:create session.建库,建表,建索引,登录。。。
对象权限:用户对其它用户的数据对象访问(操作)的权限;select,insert,delete,update,all,create index...



数据对象:用户创建的表,索引,存储过程,视力,触发器,函数,过程,包,类型,工作,库,序列,角色,表空间等。。。

角色:分两种
预定义角色
自定义角色
connect包含了7种权限;
分享到:
评论

相关推荐

    Oracle学习笔记精华版

    总之,Oracle学习笔记精华版是一份全面且深入的学习资料,涵盖了Oracle数据库的关键概念、管理和优化技术,对于任何想要在Oracle领域提升自己的人来说都是宝贵的资源。通过系统学习和实践,读者可以有效地掌握Oracle...

    Oracle学习笔记 Oracle学习笔记

    根据提供的信息,我们可以总结出以下Oracle数据库学习的关键知识点: ...以上是基于提供的内容整理出的Oracle学习笔记中的关键知识点。通过理解这些基础知识,可以更好地管理和操作Oracle数据库。

    oracle学习笔记整理

    以下是对Oracle学习笔记整理的主要知识点的详细说明: 1. **数据库选择**: 在决定使用哪种数据库时,通常需要考虑项目的规模、性能需求、安全性要求以及可用资源。Oracle数据库因其稳定性、可扩展性和高性能而被...

    MSDN oracle学习笔记

    在“MSDN Oracle学习笔记”中,我们可以期待找到关于Oracle数据库的详细讲解和实践指导。 首先,Oracle数据库的基础知识是必不可少的。这通常涵盖数据库系统的基本概念,如SQL(结构化查询语言)的使用,数据类型,...

    oracle学习笔记下载

    ### Oracle 学习笔记知识点概览 #### 一、Oracle 数据库系统参数查询与管理 在 Oracle 数据库的学习过程中,了解如何查看和管理数据库的系统参数是非常重要的。这些参数直接影响着数据库的性能和稳定性。 ##### ...

    Oracle 10g 学习笔记

    │ Oracle学习笔记.pdf │ Oracle学习笔记.wps │ 安装Oracle后myEclipse不能正常使用.txt │ 手工配置listener.ora【避免出现ORA-12514错误】.txt │ 贴子树状态存储结构.jpg │ 贴子树状态存储结构.sql │ ├─01...

    mldn oracle学习笔记

    "mldn oracle学习笔记"是一份关于学习Oracle数据库的资源,很可能包含了从基础到高级的全方位教程,旨在帮助学习者深入理解Oracle数据库的原理和操作技巧。"魔乐"可能是这份笔记的作者或者是一个学习社区的名字,而...

    oracle 经典学习笔记

    Oracle数据库是一种广泛使用的大型关系型...Oracle数据库的学习笔记不仅能帮助初学者快速入门,而且对于中高级用户同样具备参考价值,特别是在学习和记忆数据库的众多命令和语法时,好的笔记可以显著提高学习效率。

    Oracle 超强学习笔记

    Oracle提供了精细的权限和角色机制,通过GRANT和REVOKE命令管理用户访问权限。此外,还要掌握审计功能,确保数据安全。 7. **备份与恢复** RMAN(恢复管理器)是Oracle的主要备份工具,结合归档日志和闪回技术,...

    成功之路Oracle11g学习笔记

    在安全和权限管理上,Oracle11g提供了一套完善的角色和权限机制,通过GRANT和REVOKE语句来分配和撤销权限,同时可以使用审计功能监控数据库活动,确保数据安全。 高级特性如实时应用集群(RAC)、数据分区、物质化...

    oracle学习笔记 oracle学习方法 韩顺平视屏

    以下是对Oracle学习笔记和相关知识点的详细解析: 1. **基础概念与术语** - **SQL**:Structured Query Language,用于管理和处理关系数据库的标准语言。 - **RDBMS**:关系数据库管理系统,Oracle便是其中的代表...

    玩转oracle学习笔记(一)-Oracle管理

    总之,《玩转Oracle学习笔记(一)——Oracle管理》涵盖了Oracle数据库基础、管理、安全和优化等多个方面,是初学者入门和资深DBA提升的宝贵资料。通过深入学习和实践,我们可以不断提升在Oracle领域的专业能力。

    李兴华Oracle全部笔记

    最后,笔记可能还会包含Oracle的安全管理,包括用户权限、角色、审计和访问控制等内容,这对于确保数据库的安全性至关重要。 总的来说,李兴华Oracle全部笔记是一份全面且深入的Oracle学习资料,不仅适合初学者入门...

    oracle学习笔记,介绍详细

    这份“Oracle学习笔记”无疑是你深入理解和掌握Oracle技术的重要资源。笔记涵盖了Oracle的语法基础、核心概念以及各种实用功能,旨在帮助初学者快速上手,同时也能为有一定经验的DBA提供参考。 首先,Oracle数据库...

    Oracle学习笔记.doc

    在Oracle中,预定义的角色和权限对于管理和控制用户访问权限至关重要。例如,`CONNECT`角色允许用户建立会话并连接到数据库,`RESOURCE`角色则允许用户创建数据库对象如表、索引等。更高级的角色如`DBA`拥有大部分...

    Oracle SQLServer数据库 学习笔记

    5. **安全性**:通过角色权限管理、审计和加密等机制,确保数据安全。 二、SQL Server数据库系统 SQL Server是微软公司的产品,同样具有广泛的应用场景: 1. **T-SQL**:SQL Server使用Transact-SQL作为其扩展的...

    oracle学习笔记2013(+安装、卸载)

    这份"oracle学习笔记2013(+安装、卸载)"涵盖了从基础到进阶的多个方面,对于想要深入理解Oracle数据库的人来说是一份宝贵的资料。 首先,"Oracle10G安装图解.doc"详细阐述了Oracle 10g的安装步骤。Oracle的安装是...

    玩转Oracle学习笔记

    本"玩转Oracle学习笔记"旨在帮助初学者和进阶者深入理解和掌握Oracle的各项核心功能,以及如何在实际工作中有效应用。 一、Oracle数据库基础 Oracle数据库的核心组件包括数据文件、控制文件、重做日志文件和初始化...

Global site tag (gtag.js) - Google Analytics