默认用户 sys system scott 等
sys用户登陆oracle
sqlplus / as sysdba
显示登陆用户
show user;
创建用户,同时授予会话权限
create user username identified by password;grant create session to lisi
创建用户后登陆数据库(不要在sys登陆窗口登陆,新启cmd窗口)
sqlplus lisi/lisi
oracle-系统权限管理
标签:cot 窗口 highlight 创建用户 oracl grant lis ssi 默认
小编还为您整理了以下内容,可能对您也有帮助:
Oracle用户权限表管理方式有哪些?
一、创建用户(一)简单创建1、权限:只有DBA用户才有权限,或有create user 的系统权限2、语法:
create user 用户名 identified by 密码;oracle密码不能以数字打头3、实例:用户名-sam_sho、密码-sam123
create user sam_sho identified by sam123;4、注意:1)刚创建的用户没有任何权限, 需要管理员分配权限。如登录权限:
grant create session to sam_sho ; --分配登录权限create session:登录权限。2)oracle的权限较为复杂,下面单独处理。
(二)复杂创建1、实例create usersam_shoidentified by sam123 default tablespace users --默认表空间。users是oracle自己创建的表空间temporary tablespace temp --临时表空间quota 3m on users ; --分配表空间大小,3m。unlimited-不限制大小grant create session to sam_sho ; --分配登录权限grant dba to sam_sho ; --分配DBA 角色grant select on V_table to sam_sho ; --分配查询表的权限2、表空间理解1)表存在的空间,即在逻辑上表(Table)都是存放在表空间中(Tablespace )2)一个表空间指向具体的数据文件
3)resourse 角色的用户,创建的表没有表空间限制。grant resourse to sam_sho ; --分配resourse 角色(三)Oracle的用户管理机制1、一些概念:oracle dbms:数据库管理系统db 实例:表空间数据对象表用户权限:系统权限与数据库权限。角色:把常用的权限集中起来。2、权限、角色、用户的关系
二、登录及修改密码(一)用户登录1、切换用户,用户登录。1)语法:conn 用户名/密码 【as sysdba/sysoper】2)实例:
conn sam_sho/sam123;conn sam_sho/sam123 as sysdba;实际登录的不是sam_sho,可以show user看看和验证机制有关,见下面。2、显示当前登录用户的名称1)语法:show user;
(二)修改密码1、给用户修改密码1)语法:passw【ord】 用户名2)实例:passw sam_sho;passw 3)注意:给自己修改,不需要带用户名,给别人修改需要带上。2、给别人修改密码1)权限:需要DBA的权限,或者拥有alter user 的系统权限2)语法:alter user 用户名 identified by 新密码;3)实例:alter user sam_sho identified by sam456;(三)删除用户1、权限:一般需要DBA的权限,或者需要具有drop user的权限2、语法:语法:drop user 用户名 (cascade)cascade 参数:级联删除该用户创建的表等数据对象。数据库会提醒的。3、实例:drop user sam_sho ;drop user sam_sho cascade;--级联删除用户创建的表等数据4、删除某个用户,但保留其数据对象方案:锁定该用户alter user 用户 account lock;alter user 用户 account unlock;--解锁
三、用户口令
1、概述:需要DBA身份profile 是口令限制,资源限制的命令集合,当建立数据库时,oracle会自动建立名称为default 的profile。当建立用户没有指定 profile 选项,那么oracle 就会将default 分配给用户。2、账户锁定概述:指定该账户登录时最多可以输入密码的次数,也可以指定用户锁定的时间(天),一般用dba 的身份去执行该命令。实例:指定 这个用户最多只能尝试3次登录,锁定时间为2天。create profile lock_account limit failed_login_attempts 3 password_lock_time 2;alter user sam123 profile lock_account ;--分配
3、账户解锁:语法:alter user 用户名 account unlock;实例:alter user sam123 account unlock;
4、终止口令
概述:为了让用户定期修改密码可以使用终止口令来完成实例:建立新的profile ,要求该用户每隔10天要修改自家的登录密码,宽限期为2天。create profile myProfile limit password_life_time 10 password_grace_time 2;alter user sam123 profile myProfile;5、历史口令:新旧密码不能重复create profile myProfile2 limit password_life_time 10 password_grace_time 2 password_reuse_time 1alter user sam123 profile myProfile2;6、删除口令drop profile myProfile2 ;
四、权限与角色(一)、概述:
1、刚创建的用户没有任何权限(不能登录),需要赋予各种权限。oracle对于权限的管理,需要引用角色的概念。2、权限1)系统权限:用户对数据库管理的操作以及对数据对象本身的操作的权限。包括建库、建表、建索引、登录数据库、修改密码等等2)对象权限:用户对其他用户的数据对象数据操作的权限。权限主要分为:select、insert、update、delete、all、create index 等等3、角色:简化对权限的管理。1)预定义角色connect :连接的角色DBA:管理员角色resource:这个角色可以在任何表空间中建表。2)自定义角色
4、查看权限、角色通过PL/SQL DEV工具查看通过各种指令5、权限分配的方式直接分配权限系统权限(与数据库管理相关):grant create sessionto sam_sho ;--分配登录权限对象权限(增删改查):grantselectonV_tableto sam_sho ;--分配查询表的权限分配角色,批量分配权限grantdbato sam_sho ;--分配DBA 角色6、撤销权限语法:revoke 权限 from 用户实例:revoke select on emp from sam_sho; 从sam_sho收回emp表的查询权限revoke connect from sam_sho;
(二)权限1、系统权限:是指执行特定类型sql命令的权限,它用于控制用户可以执行的一个或是一组数据库操作。比如当用户具有 create table 权限时,可以在其方案中建表。当用户具有 create any table 权限时,可以再任何方案中建表。1)内容create session 连接数据库create table 建表create view 建视图create public synonym 建同义词create procedure 建过程、函数、包create trigger 触发器create cluster 建簇create sequence 建索引create type 2)显示:oracle 提供了166系统权限,查询数据字典视图 system_privilege_mapselect * from system_privilege_map order by name;--查询系统权限3)赋予系统权限:grant 一般情况下只有DBA才能完成 或者拥有 grant any privilege 权限赋权限语句后+ with admin option ,实现系统权限的传递(和方案一起理解)grant connect to sam_sho with admin option4)权限回收:revoke不是级联回收。2、对象权限:访问其他方案对象的权利。用户可以直接访问自己方案的对象,但是如果要访问别的方案的对象,则必须具有对象的权限。1)内容:alter 修改delete 删除select 查询insert 添加update 修改index 索引references 引用execute 执行2)显示:DBA用户可以查看对象权限 dba_tab_privsselect distinct privilege from dba_tab_privs;3)赋予对象权限直接可以赋权限给用户 或者角色赋权限语句后+ with grant option ,实现系统权限的传递grant select on emp to sam_sho with grant option只能赋予用户,不能赋予角色4)权限回收:revoke是级联回收。(三)角色1、预定义角色:33种1)常见内容connect :连接的角色DBA:管理员角色(sys 和 system)。不具备启动和关闭数据库resource:这个角色可以在任何表空间中建表。隐藏了 unlimited tablespace 的权限2)显示查看预定义角色:33种角色select * from dba_roles;查看角色的系统权限SELECT * FROM dba_sys_privs where grantee = ‘DBA‘SELECT * FROM role_sys_privs WHERE role = ‘DBA‘;查看角色的对象权限SELECT * FROM dba_tab_privs where grantee = ‘DBA‘查看某个用户的角色SELECT * FROM dba_role_privs WHERE grantee=‘SYS‘;2、自定义角色1)创建角色注意:BDA角色创建或者 需要具有create role 权限在建立角色的时候,可以设置验证方式,如不验证、数据库验证等不验证建立(一般都是这种)create role 角色名 not identified数据库验证create role 角色名 identified by 密码;2)给角色赋权限grant create session to 角色3)实例create role myRole not identified;grant create session to myRole ;grant select on scott.emp to myRole ;grant myRole to sam_sho;3、删除角色drop role 角色名;(四)给用户赋权限1、赋予直接的权限。如直接登录权限(create session)grant create session to sam_sho;grant select on emp to sam_sho;2、直接分配角色,批量分配权限。如
grant connect to sam_sho;授于sam_sho connect的角色,即拥有登录的权限。connect,包含7 种权限。grant resource to sam_sho;(五)用户的权限操作1、赋权限:grant 1)语法:grant 权限(角色) to 用户名;
2)实例1:
grant create table to sam_sho:赋予 sam_sho 创建表的权限。grant dba to sam_sho:赋予 sam_sho dba的角色,其自然具有创建表的角色。3)实例2grant select on emp to sam_sho; 把emp表的查询权限赋予sam_shoSELECT * FROM scott.emp;可以查询,但是需要在表前面加上scott前缀。2、收回权限:revoke1)语法:revoke select on emp from sam_sho; 从sam_sho收回emp表的查询权限2)注意:谁授权,谁收回。或者DBA系统权限,不是级联回收。对象权限,是级联回收。3、权限的传递1)scott把emp表的查询权限赋予sam_sho,sam_sho再把这种权限传递给rabby_zho2)语法:对象权限使用 with grant option 进行传递grant select on emp to sam_sho with grant option;(scott登录)grant select on scott.emp to rabby_zho;(sam_sho登录)角色、系统权限使用 with admin optiongrant connect to sam_sho with admin option;(scott登录)grant connect to rabby_zho;3)回收系统权限,不是级联回收。对象权限,是级联回收。
五、方案(Schema)1、问题:同一个数据库实例 DEV_SAM,创建了2个用户 A 和 B 。用户 A 创建表a_table,B创建表b_table。结果A 访问不了 b_table,B访问不了 a_table 。2、解决:当一个用户,创建好后,如果该用户创建了任意一个数据对象,这时,dbms就会创建一个对应的【方案】与该用户对应,并且该【方案】的名字与用户名一致。在这样的机制下,同一个数据库实例,可以创建多张相同表名的表,但是同一个方案中表名是具有唯一性的。A 如果需要去访问 B方案下的数据,需要权限的转移。语法: grant 权限 to 用户名 【with grant option】 对象权限grant 权限 to 用户名 【with admin option】系统权限实例grant select on emp to sam_sho ;(scott登录)使用的时候,需要带【方案】名:select * from scott.emp 。grant all on emp to sam_sho with grant option;可以转移grant select on scott.emp to sam2;
六、数据库的启动流程(远程登录)(一)windows:1、lsnrctl start (启动监听)2、oradim -startup -sid 数据库实例名oradim -startup -sid orcl3、附:查看windows系统的信息systeminfo(二)Linux1、lsnrctl start (启动监听)2、sqlplus sys/change_on_install as sysdba sqlplus /nologconn sys/change_on_install as sysdba 3、startup
七、Oracle的登录认证方式(一)Windows1、oracle登录认证在windows 和linux 下是不完全相同。2、现象:1)conn XXXX/CCC as sysdba; 登录成功,并且显示当前用户为 sys。2)XXXX/CCC 可以任意,只要以 as sysdba 即可。
2、操作系统认证1)如果【当前用户】属于本地操作系统的 ora_dba 组,即可通过操作系统认证。2)当前用户,指目前操作系统使用的用户,可以简单通过windows 任务管理器查看。
3)操作系统的用户与组:我的电脑-->右击管理-->本地用户和组-->用户,如用户 sam
我的电脑-->右击管理-->本地用户和组-->组,显示sam属于ora_dba组
3、oracle 数据库验证(密码文件验证)1)对于普通用户:oracle默认使用数据库验证。2)对于特权用户(比如 sys 用户,或以 as sysdba)oracle 默认使用操作系统认证,如果验证不通过,再到数据库验证。通过配置 NETWORKADMINsqlnet.ora 文件,可以修改oracle登录认证方式。SQLNET.AUTHENTICATION_SERVICES= (NTS) NTS:基于系统,默认的。NONE:基于Oracle 验证NONE,NTS:二者都验证
(二)Linux,略。
七、丢失 Oracle 管理员密码1、恢复办法:把原有密码文件删除,生成一个新的密码文件2、恢复步骤如下:1)搜索名为 PWD+数据库实例名.ora 文件。一般在databasePWDorcl.ora2)删除该文件,建议备份。3)生成新的密码文件,在doc 下输入命令:orapwd file = 原来密码文件的全路径密码文件名.ora password=新密码 entries=10;entries=10:允许几个特权用户密码文件名 一定要和原来的密码文件名一致。4)重启生效
3、例子:orapwd file=D:oracle10gdatabasePWDorcl.ora password=abc123 entries=10;
八、数据库管理员
Oracle基础(二):用户及权限管理
标签:oracle 用户管理 权限 方案 create user
Oracle用户权限表管理方式有哪些?
一、创建用户(一)简单创建1、权限:只有DBA用户才有权限,或有create user 的系统权限2、语法:
create user 用户名 identified by 密码;oracle密码不能以数字打头3、实例:用户名-sam_sho、密码-sam123
create user sam_sho identified by sam123;4、注意:1)刚创建的用户没有任何权限, 需要管理员分配权限。如登录权限:
grant create session to sam_sho ; --分配登录权限create session:登录权限。2)oracle的权限较为复杂,下面单独处理。
(二)复杂创建1、实例create usersam_shoidentified by sam123 default tablespace users --默认表空间。users是oracle自己创建的表空间temporary tablespace temp --临时表空间quota 3m on users ; --分配表空间大小,3m。unlimited-不限制大小grant create session to sam_sho ; --分配登录权限grant dba to sam_sho ; --分配DBA 角色grant select on V_table to sam_sho ; --分配查询表的权限2、表空间理解1)表存在的空间,即在逻辑上表(Table)都是存放在表空间中(Tablespace )2)一个表空间指向具体的数据文件
3)resourse 角色的用户,创建的表没有表空间限制。grant resourse to sam_sho ; --分配resourse 角色(三)Oracle的用户管理机制1、一些概念:oracle dbms:数据库管理系统db 实例:表空间数据对象表用户权限:系统权限与数据库权限。角色:把常用的权限集中起来。2、权限、角色、用户的关系
二、登录及修改密码(一)用户登录1、切换用户,用户登录。1)语法:conn 用户名/密码 【as sysdba/sysoper】2)实例:
conn sam_sho/sam123;conn sam_sho/sam123 as sysdba;实际登录的不是sam_sho,可以show user看看和验证机制有关,见下面。2、显示当前登录用户的名称1)语法:show user;
(二)修改密码1、给用户修改密码1)语法:passw【ord】 用户名2)实例:passw sam_sho;passw 3)注意:给自己修改,不需要带用户名,给别人修改需要带上。2、给别人修改密码1)权限:需要DBA的权限,或者拥有alter user 的系统权限2)语法:alter user 用户名 identified by 新密码;3)实例:alter user sam_sho identified by sam456;(三)删除用户1、权限:一般需要DBA的权限,或者需要具有drop user的权限2、语法:语法:drop user 用户名 (cascade)cascade 参数:级联删除该用户创建的表等数据对象。数据库会提醒的。3、实例:drop user sam_sho ;drop user sam_sho cascade;--级联删除用户创建的表等数据4、删除某个用户,但保留其数据对象方案:锁定该用户alter user 用户 account lock;alter user 用户 account unlock;--解锁
三、用户口令
1、概述:需要DBA身份profile 是口令限制,资源限制的命令集合,当建立数据库时,oracle会自动建立名称为default 的profile。当建立用户没有指定 profile 选项,那么oracle 就会将default 分配给用户。2、账户锁定概述:指定该账户登录时最多可以输入密码的次数,也可以指定用户锁定的时间(天),一般用dba 的身份去执行该命令。实例:指定 这个用户最多只能尝试3次登录,锁定时间为2天。create profile lock_account limit failed_login_attempts 3 password_lock_time 2;alter user sam123 profile lock_account ;--分配
3、账户解锁:语法:alter user 用户名 account unlock;实例:alter user sam123 account unlock;
4、终止口令
概述:为了让用户定期修改密码可以使用终止口令来完成实例:建立新的profile ,要求该用户每隔10天要修改自家的登录密码,宽限期为2天。create profile myProfile limit password_life_time 10 password_grace_time 2;alter user sam123 profile myProfile;5、历史口令:新旧密码不能重复create profile myProfile2 limit password_life_time 10 password_grace_time 2 password_reuse_time 1alter user sam123 profile myProfile2;6、删除口令drop profile myProfile2 ;
四、权限与角色(一)、概述:
1、刚创建的用户没有任何权限(不能登录),需要赋予各种权限。oracle对于权限的管理,需要引用角色的概念。2、权限1)系统权限:用户对数据库管理的操作以及对数据对象本身的操作的权限。包括建库、建表、建索引、登录数据库、修改密码等等2)对象权限:用户对其他用户的数据对象数据操作的权限。权限主要分为:select、insert、update、delete、all、create index 等等3、角色:简化对权限的管理。1)预定义角色connect :连接的角色DBA:管理员角色resource:这个角色可以在任何表空间中建表。2)自定义角色
4、查看权限、角色通过PL/SQL DEV工具查看通过各种指令5、权限分配的方式直接分配权限系统权限(与数据库管理相关):grant create sessionto sam_sho ;--分配登录权限对象权限(增删改查):grantselectonV_tableto sam_sho ;--分配查询表的权限分配角色,批量分配权限grantdbato sam_sho ;--分配DBA 角色6、撤销权限语法:revoke 权限 from 用户实例:revoke select on emp from sam_sho; 从sam_sho收回emp表的查询权限revoke connect from sam_sho;
(二)权限1、系统权限:是指执行特定类型sql命令的权限,它用于控制用户可以执行的一个或是一组数据库操作。比如当用户具有 create table 权限时,可以在其方案中建表。当用户具有 create any table 权限时,可以再任何方案中建表。1)内容create session 连接数据库create table 建表create view 建视图create public synonym 建同义词create procedure 建过程、函数、包create trigger 触发器create cluster 建簇create sequence 建索引create type 2)显示:oracle 提供了166系统权限,查询数据字典视图 system_privilege_mapselect * from system_privilege_map order by name;--查询系统权限3)赋予系统权限:grant 一般情况下只有DBA才能完成 或者拥有 grant any privilege 权限赋权限语句后+ with admin option ,实现系统权限的传递(和方案一起理解)grant connect to sam_sho with admin option4)权限回收:revoke不是级联回收。2、对象权限:访问其他方案对象的权利。用户可以直接访问自己方案的对象,但是如果要访问别的方案的对象,则必须具有对象的权限。1)内容:alter 修改delete 删除select 查询insert 添加update 修改index 索引references 引用execute 执行2)显示:DBA用户可以查看对象权限 dba_tab_privsselect distinct privilege from dba_tab_privs;3)赋予对象权限直接可以赋权限给用户 或者角色赋权限语句后+ with grant option ,实现系统权限的传递grant select on emp to sam_sho with grant option只能赋予用户,不能赋予角色4)权限回收:revoke是级联回收。(三)角色1、预定义角色:33种1)常见内容connect :连接的角色DBA:管理员角色(sys 和 system)。不具备启动和关闭数据库resource:这个角色可以在任何表空间中建表。隐藏了 unlimited tablespace 的权限2)显示查看预定义角色:33种角色select * from dba_roles;查看角色的系统权限SELECT * FROM dba_sys_privs where grantee = ‘DBA‘SELECT * FROM role_sys_privs WHERE role = ‘DBA‘;查看角色的对象权限SELECT * FROM dba_tab_privs where grantee = ‘DBA‘查看某个用户的角色SELECT * FROM dba_role_privs WHERE grantee=‘SYS‘;2、自定义角色1)创建角色注意:BDA角色创建或者 需要具有create role 权限在建立角色的时候,可以设置验证方式,如不验证、数据库验证等不验证建立(一般都是这种)create role 角色名 not identified数据库验证create role 角色名 identified by 密码;2)给角色赋权限grant create session to 角色3)实例create role myRole not identified;grant create session to myRole ;grant select on scott.emp to myRole ;grant myRole to sam_sho;3、删除角色drop role 角色名;(四)给用户赋权限1、赋予直接的权限。如直接登录权限(create session)grant create session to sam_sho;grant select on emp to sam_sho;2、直接分配角色,批量分配权限。如
grant connect to sam_sho;授于sam_sho connect的角色,即拥有登录的权限。connect,包含7 种权限。grant resource to sam_sho;(五)用户的权限操作1、赋权限:grant 1)语法:grant 权限(角色) to 用户名;
2)实例1:
grant create table to sam_sho:赋予 sam_sho 创建表的权限。grant dba to sam_sho:赋予 sam_sho dba的角色,其自然具有创建表的角色。3)实例2grant select on emp to sam_sho; 把emp表的查询权限赋予sam_shoSELECT * FROM scott.emp;可以查询,但是需要在表前面加上scott前缀。2、收回权限:revoke1)语法:revoke select on emp from sam_sho; 从sam_sho收回emp表的查询权限2)注意:谁授权,谁收回。或者DBA系统权限,不是级联回收。对象权限,是级联回收。3、权限的传递1)scott把emp表的查询权限赋予sam_sho,sam_sho再把这种权限传递给rabby_zho2)语法:对象权限使用 with grant option 进行传递grant select on emp to sam_sho with grant option;(scott登录)grant select on scott.emp to rabby_zho;(sam_sho登录)角色、系统权限使用 with admin optiongrant connect to sam_sho with admin option;(scott登录)grant connect to rabby_zho;3)回收系统权限,不是级联回收。对象权限,是级联回收。
五、方案(Schema)1、问题:同一个数据库实例 DEV_SAM,创建了2个用户 A 和 B 。用户 A 创建表a_table,B创建表b_table。结果A 访问不了 b_table,B访问不了 a_table 。2、解决:当一个用户,创建好后,如果该用户创建了任意一个数据对象,这时,dbms就会创建一个对应的【方案】与该用户对应,并且该【方案】的名字与用户名一致。在这样的机制下,同一个数据库实例,可以创建多张相同表名的表,但是同一个方案中表名是具有唯一性的。A 如果需要去访问 B方案下的数据,需要权限的转移。语法: grant 权限 to 用户名 【with grant option】 对象权限grant 权限 to 用户名 【with admin option】系统权限实例grant select on emp to sam_sho ;(scott登录)使用的时候,需要带【方案】名:select * from scott.emp 。grant all on emp to sam_sho with grant option;可以转移grant select on scott.emp to sam2;
六、数据库的启动流程(远程登录)(一)windows:1、lsnrctl start (启动监听)2、oradim -startup -sid 数据库实例名oradim -startup -sid orcl3、附:查看windows系统的信息systeminfo(二)Linux1、lsnrctl start (启动监听)2、sqlplus sys/change_on_install as sysdba sqlplus /nologconn sys/change_on_install as sysdba 3、startup
七、Oracle的登录认证方式(一)Windows1、oracle登录认证在windows 和linux 下是不完全相同。2、现象:1)conn XXXX/CCC as sysdba; 登录成功,并且显示当前用户为 sys。2)XXXX/CCC 可以任意,只要以 as sysdba 即可。
2、操作系统认证1)如果【当前用户】属于本地操作系统的 ora_dba 组,即可通过操作系统认证。2)当前用户,指目前操作系统使用的用户,可以简单通过windows 任务管理器查看。
3)操作系统的用户与组:我的电脑-->右击管理-->本地用户和组-->用户,如用户 sam
我的电脑-->右击管理-->本地用户和组-->组,显示sam属于ora_dba组
3、oracle 数据库验证(密码文件验证)1)对于普通用户:oracle默认使用数据库验证。2)对于特权用户(比如 sys 用户,或以 as sysdba)oracle 默认使用操作系统认证,如果验证不通过,再到数据库验证。通过配置 NETWORKADMINsqlnet.ora 文件,可以修改oracle登录认证方式。SQLNET.AUTHENTICATION_SERVICES= (NTS) NTS:基于系统,默认的。NONE:基于Oracle 验证NONE,NTS:二者都验证
(二)Linux,略。
七、丢失 Oracle 管理员密码1、恢复办法:把原有密码文件删除,生成一个新的密码文件2、恢复步骤如下:1)搜索名为 PWD+数据库实例名.ora 文件。一般在databasePWDorcl.ora2)删除该文件,建议备份。3)生成新的密码文件,在doc 下输入命令:orapwd file = 原来密码文件的全路径密码文件名.ora password=新密码 entries=10;entries=10:允许几个特权用户密码文件名 一定要和原来的密码文件名一致。4)重启生效
3、例子:orapwd file=D:oracle10gdatabasePWDorcl.ora password=abc123 entries=10;
八、数据库管理员
Oracle基础(二):用户及权限管理
标签:oracle 用户管理 权限 方案 create user
Oracle用户的权限都有哪些
系统权限: 允许用户执行特定的数据库动作,如创建表、创建索引、连接实例等(对用户而言)
对象权限: 允许用户操纵一些特定的对象,如读取视图,可更新某些列、执行存储过程等(是针对表或视图而言的)
1.系统权限
超过一百多种有效的权限(SELECT * FROM SYSTEM_PRIVILEGE_MAP查)
数据库管理员具有高级权限以完成管理任务,例如:
–创建新用户
–删除用户
–删除表
–备份表
系统权限分类:
DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。
对于普通用户:授予connect, resource权限。
对于DBA管理用户:授予connect,resource, dba权限。
a.常用的系统权限:
CREATE SESSION 创建会话
CREATE SEQUENCE 创建序列
CREATE SYNONYM 创建同名对象
CREATE TABLE 在用户模式中创建表
CREATE ANY TABLE 在任何模式中创建表
DROP TABLE 在用户模式中删除表
DROP ANY TABLE 在任何模式中删除表
CREATE PROCEDURE 创建存储过程
EXECUTE ANY PROCEDURE 执行任何模式的存储过程
CREATE USER 创建用户
DROP USER 删除用户
CREATE VIEW 创建视图
2.对象权限
不同的对象具有不同的对象权限
对象的拥有者拥有所有权限
对象的拥有者可以向外分配权限
ORACLE一共有种对象权限
对象权限 表 视图 序列 过程
修改(alter) √ √
删除(delete) √ √
执行(execute) √
索引(index) √
插入(insert) √ √
关联(references) √ √
选择(select) √ √ √
更新(update) √ √
另外,connect和resource的权限如下所示
CONNECT角色:仅具有创建SESSION的权限
RESOURCE角色:仅具有创建CLUSTER,INDEXTYPE,OPERATOR,PROCEDEURE,SEQUENCE,TABLE,TRIGGER,TYPE的权限。同时,当把ORACLE resource角色授予一个user的时候,不但会授予ORACLE resource角色本身的权限,而且还有unlimited tablespace权限,但是,当把resource授予一个role时,就不会授予unlimited tablespace权限。
确实没有创建视图的权限,由此看来如果需要创建视图权限,只能单独授权:
GRANT CREATE VIEW TO 用户;