- 浏览: 234194 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (105)
- JFreeChart (3)
- DbUtil (1)
- Struts2 (17)
- Ruby or Rails (4)
- Eclipse插件 (2)
- 英文一角 (2)
- IT生活 (7)
- 社会盘点 (0)
- Maven3 (3)
- Java (17)
- Jquery (12)
- Hibernate (8)
- Ajax (4)
- Oracle (2)
- SSH2 OA项目 (4)
- jsptags分页插件 (1)
- Javascript (4)
- Ubuntu (4)
- java Utils (1)
- JPA (2)
- sitemesh (1)
- Css (1)
- spring (3)
- 杂记 (5)
- Hibernate3连接池的配置 (0)
最新评论
-
天使建站:
http://www.aijquery.cn/Html/bia ...
jQuery获取及设置单选框,多选框,文本框内容 -
zjxkeven:
不错 不知道好不好用
java服务器状态监控实现 -
根号九加一:
能否发一份给我呢 邮箱是 zmh958@qq.com 谢谢! ...
SSH2项目搭建 -
23843492:
能否发一份给我:23843492@qq.com
SSH2项目搭建 -
jiangdaxian2003:
LZ求代码,谢谢,15914380151@139.com
SSH2项目搭建
系统权限:赋予用户执行某些系统范围内的操作能力,如:
有CREATE SESSION系统权限的用户能连接到数据库服务器并建立数据库会话。
有CREATE TABLE系统权限的用户能在自己的模式中创建表。
有CREATE ANY TABLE系统权限的用户能在数据库的任何模式中创建表
有CREATE ANY TYPE系统权限的用户能在系统的任何模式中创建类型及关联类型体。
有SELECT ANY TABLE系统权限的用户能查看数据库中的任何表
有EXECUTE ANY PROCEDURE系统权限的用户能在数据库中执行任何存储过程、存储函数或打包部件。
有EXECUTE ANY TYPE系统权限的用户能引用和执行数据库中任何类型的方法。
数据库管理员是唯一拥有强大的ALTER DATABASE系统权限的用户,改权限允许某人更改数据库系统的物理结构和有效性。
开发人员通常需要若干个系统权限,包括:CREATE TABLE,CREATE VIEW和CREATE TYPE系统权限,以便支持前端应用程序的数据库模式。
系统中的每个用户多有CREATE SESSION权限,该权限允许用户连接到数据库服务器。
对象权限:是一种赋予用户在指定的数据库对象(如表、视图或存储过程等)上执行特定类型的操作权限:
具有对CUS视图的SELECT对象权限的用户能够查询视图并检索信息。
具有对CUSTOMERS表的INSERT对象权限能够向该表插入新航。
具有对partType对象类型的EXECUTE对象的用户在创建其他数据库对象并执行该对象的方法时能够使用该类型。
授予用户系统权限
GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE ANY INDEX, CREATE SEQUENCE, CREATE TYPE
TO YZHQ
WITH ADMIN OPTION;
收回
REVOKE CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE ANY INDEX, CREATE SEQUENCE, CREATE TYPE
FROM YZHQ;
不能向其他用户授权
GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE ANY INDEX, CREATE SEQUENCE, CREATE TYPE
TO YZHQ;
e.g.
SQL> grant create table to becvx;
grant create table to becvx
*
ERROR 位于第 1 行:
ORA-01031: 权限不足
授予用户对象权限
表: SELECT, INSERT, UPDATE, DELETE, ALTER, INDEX, RREFERENCES
INDEX权限授权者为表创建索引,当声明了参照完整性约束时,REFERENCES权限允许授权者参照这个表
可以为INSERT,UPDATE和REFERENCES权限授予列选择权限
视图:SELECT, INSERT, UPDATE, DELETE
可以为INSERT和UPDATE权限授予列选择权限
序列:SLEECT, ALTER
SELECT权限让授权者利用序列的NEXTVAL和CURRVAL伪列来生成和重用序列号
过程、函数、包、对象类型:EXECUTE
用于对象类型的EXECUTE权限让授权者在创建其他模式对象和类型时使用该对象类型,同时让授权者执行该类型的方法。
GARNT INSERT, UPDATE, DELETE, SELECT
ON customers
to lellision;
授予 INSERT, UPDATE, DELETE, SELECT权限
GRANT ALL PRIVILEGES
ON orders
TO lellision
WITH GRANT OPTION;
将ORDERS表的全部对象权限授予了LELLISON,同时附带了将ORDERS表的表权限授予了其他用户的选项
GRANT SELECT,
INSERT (id, lastname, firstname),
UPDATE (lastname, firstname),
REFERENCE (id)
ON salesreps
TO lellison;
权限仅为指定的列授权
撤销:
REVOKE UPDATE, DELETE ON customers
FROM lellision;
REVOKE ALL PRIVILEGES ON orders
FROM lellison;
REVOKE RREFERENCE ON salesreps
FROM lellison
CASCADE CONSTRAINTS;
CASCADE CONSTRAINTS 表明你要输出所有将撤销的REFERENCES对象权限所创建的参照完整性约束。
当为表相关性的对性类型撤销EXECUTE对象权限时,FORCE选项是必须的。
按角色的权限管理
预定义数据库角色(常见的5个):
CONNECT 基本的用户角色,允许授权者链接到数据库,然后在相关的模式中创建表、视图、同义词、序列和一些其他的对象类型
RESOURCE 建议用于典型的应用开发人员。该角色允许授权者在相关的模式中创建表、序列、数据簇、过程、函数、包、触发器、
对象类型、基于函数的索引和用户自定义的操作符
DBA 建议用户管理员。该角色允许授权者执行任何数据库功能,因为它包含了说有的系统权限。此外,改DBA角色的授权者
可以向任何其他数据库用户或角色授予任何系统权限
SELECT_CATALOG_ROLE 该角色允许授权者查询管理员(DBA_)数据字典视图
EXECUTE_CATALOG_ROLE 该角色允许授权者运行预制的DBMS工具包
创建角色
CREATE ROLE appdev
IDENTIFIED BY yeRtw;
注意:创建一个角色时,Oracle自动把该角色及其管理权授予你,以便你能改变、删除该角色以及将该角色授予其他角色和用户。
另外,角色归系统所有,而非角色创建者所有。
给角色授予系统权限和角色
GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE ANY INDEX,
CREATE SEQUENCE, CREATE TYPE
TO appdev;
为角色授予带有管理权限的系统权限和角色是不明智的。
GARNT INSERT, UPDATE, DELETE, SELECT
ON customers
to appdev;
GRANT ALL PRIVILEGES
ON orders
TO appdev
WITH GRANT OPTION;
GRANT SELECT,
INSERT (id, lastname, firstname),
UPDATE (lastname, firstname),
ON salesreps
TO appdev;
注意:Oracle不允许向一个角色授予表的REFERENCES对象权限-------当用户需要这个权限时,必须直接把权限授予该用户。
##########################
## 设置用户的缺省角色 ##
##########################
SQL> desc user_role_privs
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
USERNAME VARCHAR2(30)
GRANTED_ROLE VARCHAR2(30)
ADMIN_OPTION VARCHAR2(3)
DEFAULT_ROLE VARCHAR2(3)
OS_GRANTED VARCHAR2(3)
当为用户授予角色时,Oracle自动的添加该角色到用户的缺省角色列表中。
SQL> create user rhora identified by rhora;
用户已创建
SQL> grant connect, resource, dba to rhora;
授权成功。
SQL> conn rhora/rhora
已连接。
SQL> select * from user_role_privs;
USERNAME GRANTED_ROLE ADM DEF OS_
------------------------------ ------------------------------ --- --- ---
RHORA CONNECT NO YES NO
RHORA DBA NO YES NO
RHORA RESOURCE NO YES NO
注意:如果用户不具带有CREATE SESSION系统权限的缺省角色,就必须直接为该用户授予CREATE SESSION系统权限,
否则这个用户将不能建立数据库会话。
QL> conn /as sysdba
已连接。
SQL> alter user rhora default role resource;
用户已更改。
SQL> conn rhora/rhora
ERROR:
ORA-01045: user RHORA lacks CREATE SESSION privilege; logon denied
警告: 您不再连接到 ORACLE。
SQL> conn /as sysdba
已连接。
SQL> grant CREATE SESSION to rhora;
授权成功。
SQL> conn rhora/rhora
已连接。
SQL> select * from user_role_privs;
USERNAME GRANTED_ROLE ADM DEF OS_
------------------------------ ------------------------------ --- --- ---
RHORA CONNECT NO NO NO
RHORA DBA NO NO NO
RHORA RESOURCE NO YES NO
SQL>
将用户的角色connect, resource, dba重新添加到缺省列表中
SQL> conn /as sysdba
已连接。
SQL> alter user rhora default role connect,resource,dba;
用户已更改。
SQL> conn rhora/rhora
已连接。
SQL> select * from user_role_privs;
USERNAME GRANTED_ROLE ADM DEF OS_
------------------------------ ------------------------------ --- --- ---
RHORA CONNECT NO YES NO
RHORA DBA NO YES NO
RHORA RESOURCE NO YES NO
######################################################################################
启用和禁用角色
(1)会话可以使用带有ALL选项的SET ROLE命令来启用对帐号授权的所有角色。然而,当要启用需要口令的角色时,必须使用
IDENTIFIED BY参数指定该角色及其用户。
(2)使用SET ROLE命令的NONE选项可以禁用会话的角色。
(3)Oracle自动地禁用已经授权但没有使用SET ROLE命令启用的角色。
显示当前会话启用的角色列表,输入select * from session_roles 进行查询
SQL> conn /as sysdba
已连接。
SQL> create role appdev identified by yeTtw;
角色已创建
SQL> grant CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE ANY INDEX, CREATE SEQUENCE, CREATE TYPE
2 TO appdev;
授权成功。
SQL> create user rhora identified by rhora ;
用户已创建
SQL> grant connect, resource, select_catalog_role, hs_admin_role to rhora;
授权成功。
SQL> grant appdev to rhora;
授权成功。
SQL> conn rhora/rhora
已连接。
SQL> select * from session_roles;
ROLE
------------------------------
CONNECT
HS_ADMIN_ROLE
RESOURCE
SELECT_CATALOG_ROLE
APPDEV
如果密码输错就会报如下的错误:
SQL> set role appdev identified by abc;
set role appdev identified by abc
*
ERROR 位于第 1 行:
ORA-01979: 角色'APPDEV'缺少口令或口令无效
使用SET ROLE语句来启用APPDEV角色和禁用CONNECT, RESOURCE等其他角色。
SQL> set role appdev identified by yeTtw;
角色集
SQL> select * from session_roles;
ROLE
------------------------------
APPDEV
开启 CONNECT, RESOURCE角色
SQL> set ROLE
2 CONNECT,
3 RESOURCE
4 ;
角色集
SQL> SELECT * FROM SESSION_ROLES;
ROLE
------------------------------
CONNECT
RESOURCE
启用该用户原来具有的角色,注意:这条SET ROLE语句没有列出HS_ADMIN_ROLE, 它是SELECT_CATALOG_ROLE权限域的一部分。
这是因为Oracle自动启用被授予显示启用的角色的角色。
SQL> set ROLE
2 CONNECT,
3 RESOURCE,
4 SELECT_CATALOG_ROLE,
5 appdev IDENTIFIED By yeTtw;
角色集
SQL> select * from session_roles;
ROLE
------------------------------
APPDEV
CONNECT
RESOURCE
SELECT_CATALOG_ROLE
HS_ADMIN_ROLE
SQL>
######################################################################################
资源限制
表空间定额
ALTER USER lellison
QUOTA 5M ON users;
ALTER USER rlane
QUOTA UNLIMITED ON users;
向用户RLANE授予UNLIMITED TABLESPACE系统权限
GRANT UNLIMITED TABLESPACE TO rlane;
启用资源限制
缺省时,启动数据库不实施资源限制。因此,限制用户访问服务器资源所必需的第一步是启用在实例层强制资源限制。
使用下列格式的SQL命令ALTER SYSTEM, 在不关机和重启Oracle服务的状态下, 可以启用和禁用资源限制的强制实施。
ALTER SYSTEM
SET RESOURCE_LIMIT = {TRUE | FALES}
ALTER SYSTEM
SET RESOURCE_LIMIT = TRUE;
alter system 语句只对当前数据库实例有效,如果打算长期使用资源限制,比阿吉服务器的参数文件使其包含下列参数:
RESOURCE_LIMIT = TRUE
创建新的配置表,使用SQL命令CREATE PROFILE
CREATE PROFILE profile LIMIT
[SESSION_PER_USER { integer | UNLIMITED | DEFAULT}]
[CPU_PER_SESSION { integer | UNLIMITED | DEFAULT}]
[CPU_PER_CALL { integer | UNLIMITED | DEFAULT}]
[CONNECT_TIME { integer | UNLIMITED | DEFAULT}]
[IDLE_TIME { integer | UNLIMITED | DEFAULT}]
[LOGICAL_READS_PER_SESSION { integer | UNLIMITED | DEFAULT}]
[LOGICAL_READS_PER_CALL { integer | UNLIMITED | DEFAULT}]
[COMPOSITE_LIMIT { integer | UNLIMITED | DEFAULT}]
[PRIVATE_SGA { integer | UNLIMITED | DEFAULT}]
[FAILED_LOGIN_ATTEMPTS { integer | UNLIMITED | DEFAULT}]
[PASSWORD_LIFE_TIME { integer | UNLIMITED | DEFAULT}]
[PASSWORD_REUSE_TIME { integer | UNLIMITED | DEFAULT}]
[PASSWORD_REUSE_MAX { integer | UNLIMITED | DEFAULT}]
[PASSWORD_LOCK_TIME { integer | UNLIMITED | DEFAULT}]
[PASSWORD_GRACE_TIME { integer | UNLIMITED | DEFAULT}]
[PASSWORD_VERIFY_FUNCTION {NULL |function |DEFAULT}]
输入以下语句创建新的资源配置表:
CREATE PROFILE appdev LIMIT
SESSIONS_PER_USER 5
CPU_PER_SESSION UNLIMITED
CPU_PER_CALL 3000
CONNECT_TIME UNLIMITED
IDLE_TIME 30
LOGICAL_READS_PER_SESSION UNLIMITED
LOGICAL_READS_PER_CALL 1000
PRIVATE_SGA 200K;
配置表用户可以打开最多5个并发的数据库会话。
配置表用户的会话可以使用无限的CPU时间,但是每个数据库请求只有30秒的CPU时间(设置为3,000个百分之一秒)。如果一个
调用达到了这个CPU极限,那么Oracle就停止这个操作以避免该会话进一步消耗CPU时间。
配置表用户的会话可以不限时间的保持对这个实例的连接,而不必断开连接,但是在自动断开连接之前,只有30分钟的空闲时间。
配置用户的会话可以执行不限次数的逻辑读取(即可以从硬盘也可以从服务器内存中读取数据块),但是每个数据库请求只有1000个
逻辑块的读取操作。如果一个调用达到了这个限制,那么Oracle就停止这个操作以避免这个会话进一步消耗逻辑读取。
使用多线程服务器连接到实例的配置用户会话可以为MTS分配和使用最多200K占用内存。
更改配置表的设置
ALTER PROFILE profile LIMIT
[SESSION_PER_USER { integer | UNLIMITED | DEFAULT}]
[CPU_PER_SESSION { integer | UNLIMITED | DEFAULT}]
[CPU_PER_CALL { integer | UNLIMITED | DEFAULT}]
[CONNECT_TIME { integer | UNLIMITED | DEFAULT}]
[IDLE_TIME { integer | UNLIMITED | DEFAULT}]
[LOGICAL_READS_PER_SESSION { integer | UNLIMITED | DEFAULT}]
[LOGICAL_READS_PER_CALL { integer | UNLIMITED | DEFAULT}]
[COMPOSITE_LIMIT { integer | UNLIMITED | DEFAULT}]
[PRIVATE_SGA { integer | UNLIMITED | DEFAULT}]
[FAILED_LOGIN_ATTEMPTS { integer | UNLIMITED | DEFAULT}]
[PASSWORD_LIFE_TIME { integer | UNLIMITED | DEFAULT}]
[PASSWORD_REUSE_TIME { integer | UNLIMITED | DEFAULT}]
[PASSWORD_REUSE_MAX { integer | UNLIMITED | DEFAULT}]
[PASSWORD_LOCK_TIME { integer | UNLIMITED | DEFAULT}]
[PASSWORD_GRACE_TIME { integer | UNLIMITED | DEFAULT}]
[PASSWORD_VERIFY_FUNCTION {NULL |function |DEFAULT}]
ALTER PROFILE appdev LIMIT
FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LOCK_TIME 1
PASSWORD_LIFE_TIME 30
PASSWORD_GRACE_TIME 5
PASSWORD_REUSE_TIME UNLIMITED
PASSWORD_REUSE_MAX UNLIMITED;
配置表用户连续3个登录不成功之后,Oracle自动地锁定该帐号。
如果以为连续3个的失败登录而导致Oracle锁定了配置表用户的帐号,那么Oracle就会保持锁定该帐号整整一天,然后自动解锁帐号。
配置表用户的口令寿命为30天,加上一个个5天的宽限期限,之后,用户必须改变口令,否则Oracle锁定这个帐号。
配置表用户不能重用旧的口令。
Oracle8i强制实施在用户配置表中所设置的全部口令管理特性,无论是否启用带有ALTER SYSTEM 命令或者RESOURCE_LIMIT服务器参数
的资源限制。
######################################################################################
手工强制用户口令终止
要求该用户在下一个会话期间改动这个口令。ALTER USER user PASSWORD EXPIRE
SQL> conn /as sysdba
已连接。
SQL> alter user yzhq
2 password expire;
用户已更改。
SQL> conn yzhq/yzhq
ERROR:
ORA-28001: the password has expired
更改yzhq的口令
新口令:
重新键入新口令:
口令已更改
已连接。
SQL>
######################################################################################
设置用户的配置表
缺省时,所有的用户都分配使用数据库的缺省配置表。为了将用户的配置表设置成另一个配置表,可以使用下列格式的
SQL命令ALTER USER.
ALTER USER user
PROFILE profile
SQL> alter user yzhq profile appdev;
用户已更改。
SQL> conn yzhq
请输入口令:
ERROR:
ORA-01017: invalid username/password; logon denied
警告: 您不再连接到 ORACLE。
SQL> conn yzhq
请输入口令:
ERROR:
ORA-01017: invalid username/password; logon denied
SQL> conn yzhq
请输入口令:
ERROR:
ORA-01017: invalid username/password; logon denied
SQL> conn yzhq
请输入口令:
ERROR:
ORA-28000: the account is locked
######################################################################################
更改缺省数据库的配置表
使用ALTER PROFILE语句可以调整缺省数据库的设置。
禁用缺省数据库配置表的口令管理特性。
ALTER PROFILE default LIMIT
PASSWORD_LIFE_TIME UNLIMITED
PASSWORD_REUSE_TIME UNLIMITED
PASSWORD_REUSE_MAX UNLIMITED
PASSWORD_LOCK_TIME UNLIMITED
PASSWORD_GRACE_TIME UNLIMITED
PASSWORD_VERIFY_FUNCTION NULL;
######################################################################################
使用口令复杂性检查
可以使用SQL命令CREATE PROFILE和ALTER PROFILE的PASSWORD_VERIFY_FUNCTION参数连检验配置表用户口令的复杂性。
为了启用所有配置表用户的口令复杂性检查,将配置表的PASSWORD_VERIFY_FUNCTION参数设置为一个函数名,这个函数被
用于检查口令的复杂性。Oracle提供了缺省函数,该函数必须用位于$ORACLE_HOME/rdbms/admin/目录中的utlpwdmg.sql
命令脚本来创建。为了运行该脚本,用SYS来连接。
SQL> @$ORACLE_HOME/rdbms/admin/utlpwdmg.sql
函数已创建。
配置文件已更改
SQL>
SQL> create user rhora2 identified by ac;
create user rhora2 identified by ac
*
ERROR 位于第 1 行:
ORA-28003: 指定口令的口令验证失败
ORA-20002: Password length less than 4
SQL> create user rhora2 identified by rhora2;
create user rhora2 identified by rhora2
*
ERROR 位于第 1 行:
ORA-28003: 指定口令的口令验证失败
ORA-20001: Password same as or similar to user
SQL> create user rhora2 identified by welcome;
create user rhora2 identified by welcome
*
ERROR 位于第 1 行:
ORA-28003: 指定口令的口令验证失败
ORA-20002: Password too simple
SQL> create user rhora2 identified by becvx;
create user rhora2 identified by becvx
*
ERROR 位于第 1 行:
ORA-28003: 指定口令的口令验证失败
ORA-20003: Password should contain at least one digit, one character and one
punctuation
SQL> create user rhora2 identified by rmok3h#a;
用户已创建
SQL> drop user rhora2;
用户已丢弃
SQL> create user rhora2 identified by becvx3#;
用户已创建
SQL> alter user rhora2 identified by "becv%3";
用户已更改。
旧口令:becv%3
新口令:becv#9
SQL> conn rhora2
请输入口令:
已连接。
SQL> password
更改RHORA2的口令
旧口令:
新口令:
重新键入新口令:
ERROR:
ORA-28003: 指定口令的口令验证失败
ORA-20004: Password should differ by at \
least 3 characters
口令未更改
SQL>
更改APPDEV配置表以便使用数据库缺省配置表(SYS.VERFY_FUNCTION)的PASSWORD_VERFY_FUNCTION参数。
ALTER PROFILE appdev LIMIT
PASSWORD_VERIFY_FUNCTION DEFAULT;
######################################################################################
显示有关用户的信息
SQL> SELECT username, account_status, default_tablespace, temporary_tablespace, profile
2 FROM dba_users
3 WHERE username IN ('RHORA','RHORA1');
USERNAME ACCOUNT_STATUS
------------------------------ --------------------------------
DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
------------------------------ ------------------------------
PROFILE
------------------------------
RHORA1 OPEN
SYSTEM TEMP
DEFAULT
显示有关角色的信息
SQL> select * from dba_roles
2 where role IN ('CONNECT', 'RESOURCE', 'DBA', 'APPDEV');
ROLE PASSWORD
------------------------------ --------
APPDEV YES
DBA NO
RESOURCE NO
CONNECT NO
SQL>
显示有关表空间定额的信息
为了显示在数据库中为每个表空间授予的有关分配额的信息,可以查询DBA_TS_QUOTAS数据字典视图。
SQL> SELECT tablespace_name, username, bytes, max_bytes
2 FROM dba_ts_quotas;
TABLESPACE_NAME USERNAME BYTES MAX_BYTES
------------------------------ ------------------------------ ---------- ----------
CWMLITE OLAPSYS 15663104 -1
STATSPACK PERFSTAT 96206848 -1
SQL>
当用户有无限的表空间定额时,DBA_TS_QUOTAS视图的MAX_BYTES列显示代码"-1"。
显示用户的配置表的信息
SQL> SELECT profile, resource_name, limit
2 FROM dba_profiles
3 WHERE profile = 'APPDEV';
PROFILE RESOURCE_NAME LIMIT
------------------------------ -------------------------------- ----------------------------------------
APPDEV COMPOSITE_LIMIT DEFAULT
APPDEV SESSIONS_PER_USER 5
APPDEV CPU_PER_SESSION UNLIMITED
APPDEV CPU_PER_CALL 3000
APPDEV LOGICAL_READS_PER_SESSION UNLIMITED
APPDEV LOGICAL_READS_PER_CALL 1000
APPDEV IDLE_TIME 30
APPDEV CONNECT_TIME UNLIMITED
APPDEV PRIVATE_SGA 204800
APPDEV FAILED_LOGIN_ATTEMPTS 3
APPDEV PASSWORD_LIFE_TIME 30
PROFILE RESOURCE_NAME LIMIT
------------------------------ -------------------------------- ----------------------------------------
APPDEV PASSWORD_REUSE_TIME UNLIMITED
APPDEV PASSWORD_REUSE_MAX UNLIMITED
APPDEV PASSWORD_VERIFY_FUNCTION DEFAULT
APPDEV PASSWORD_LOCK_TIME 1
APPDEV PASSWORD_GRACE_TIME 5
已选择16行。
SQL>
######################################################################################
有CREATE SESSION系统权限的用户能连接到数据库服务器并建立数据库会话。
有CREATE TABLE系统权限的用户能在自己的模式中创建表。
有CREATE ANY TABLE系统权限的用户能在数据库的任何模式中创建表
有CREATE ANY TYPE系统权限的用户能在系统的任何模式中创建类型及关联类型体。
有SELECT ANY TABLE系统权限的用户能查看数据库中的任何表
有EXECUTE ANY PROCEDURE系统权限的用户能在数据库中执行任何存储过程、存储函数或打包部件。
有EXECUTE ANY TYPE系统权限的用户能引用和执行数据库中任何类型的方法。
数据库管理员是唯一拥有强大的ALTER DATABASE系统权限的用户,改权限允许某人更改数据库系统的物理结构和有效性。
开发人员通常需要若干个系统权限,包括:CREATE TABLE,CREATE VIEW和CREATE TYPE系统权限,以便支持前端应用程序的数据库模式。
系统中的每个用户多有CREATE SESSION权限,该权限允许用户连接到数据库服务器。
对象权限:是一种赋予用户在指定的数据库对象(如表、视图或存储过程等)上执行特定类型的操作权限:
具有对CUS视图的SELECT对象权限的用户能够查询视图并检索信息。
具有对CUSTOMERS表的INSERT对象权限能够向该表插入新航。
具有对partType对象类型的EXECUTE对象的用户在创建其他数据库对象并执行该对象的方法时能够使用该类型。
授予用户系统权限
GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE ANY INDEX, CREATE SEQUENCE, CREATE TYPE
TO YZHQ
WITH ADMIN OPTION;
收回
REVOKE CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE ANY INDEX, CREATE SEQUENCE, CREATE TYPE
FROM YZHQ;
不能向其他用户授权
GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE ANY INDEX, CREATE SEQUENCE, CREATE TYPE
TO YZHQ;
e.g.
SQL> grant create table to becvx;
grant create table to becvx
*
ERROR 位于第 1 行:
ORA-01031: 权限不足
授予用户对象权限
表: SELECT, INSERT, UPDATE, DELETE, ALTER, INDEX, RREFERENCES
INDEX权限授权者为表创建索引,当声明了参照完整性约束时,REFERENCES权限允许授权者参照这个表
可以为INSERT,UPDATE和REFERENCES权限授予列选择权限
视图:SELECT, INSERT, UPDATE, DELETE
可以为INSERT和UPDATE权限授予列选择权限
序列:SLEECT, ALTER
SELECT权限让授权者利用序列的NEXTVAL和CURRVAL伪列来生成和重用序列号
过程、函数、包、对象类型:EXECUTE
用于对象类型的EXECUTE权限让授权者在创建其他模式对象和类型时使用该对象类型,同时让授权者执行该类型的方法。
GARNT INSERT, UPDATE, DELETE, SELECT
ON customers
to lellision;
授予 INSERT, UPDATE, DELETE, SELECT权限
GRANT ALL PRIVILEGES
ON orders
TO lellision
WITH GRANT OPTION;
将ORDERS表的全部对象权限授予了LELLISON,同时附带了将ORDERS表的表权限授予了其他用户的选项
GRANT SELECT,
INSERT (id, lastname, firstname),
UPDATE (lastname, firstname),
REFERENCE (id)
ON salesreps
TO lellison;
权限仅为指定的列授权
撤销:
REVOKE UPDATE, DELETE ON customers
FROM lellision;
REVOKE ALL PRIVILEGES ON orders
FROM lellison;
REVOKE RREFERENCE ON salesreps
FROM lellison
CASCADE CONSTRAINTS;
CASCADE CONSTRAINTS 表明你要输出所有将撤销的REFERENCES对象权限所创建的参照完整性约束。
当为表相关性的对性类型撤销EXECUTE对象权限时,FORCE选项是必须的。
按角色的权限管理
预定义数据库角色(常见的5个):
CONNECT 基本的用户角色,允许授权者链接到数据库,然后在相关的模式中创建表、视图、同义词、序列和一些其他的对象类型
RESOURCE 建议用于典型的应用开发人员。该角色允许授权者在相关的模式中创建表、序列、数据簇、过程、函数、包、触发器、
对象类型、基于函数的索引和用户自定义的操作符
DBA 建议用户管理员。该角色允许授权者执行任何数据库功能,因为它包含了说有的系统权限。此外,改DBA角色的授权者
可以向任何其他数据库用户或角色授予任何系统权限
SELECT_CATALOG_ROLE 该角色允许授权者查询管理员(DBA_)数据字典视图
EXECUTE_CATALOG_ROLE 该角色允许授权者运行预制的DBMS工具包
创建角色
CREATE ROLE appdev
IDENTIFIED BY yeRtw;
注意:创建一个角色时,Oracle自动把该角色及其管理权授予你,以便你能改变、删除该角色以及将该角色授予其他角色和用户。
另外,角色归系统所有,而非角色创建者所有。
给角色授予系统权限和角色
GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE ANY INDEX,
CREATE SEQUENCE, CREATE TYPE
TO appdev;
为角色授予带有管理权限的系统权限和角色是不明智的。
GARNT INSERT, UPDATE, DELETE, SELECT
ON customers
to appdev;
GRANT ALL PRIVILEGES
ON orders
TO appdev
WITH GRANT OPTION;
GRANT SELECT,
INSERT (id, lastname, firstname),
UPDATE (lastname, firstname),
ON salesreps
TO appdev;
注意:Oracle不允许向一个角色授予表的REFERENCES对象权限-------当用户需要这个权限时,必须直接把权限授予该用户。
##########################
## 设置用户的缺省角色 ##
##########################
SQL> desc user_role_privs
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
USERNAME VARCHAR2(30)
GRANTED_ROLE VARCHAR2(30)
ADMIN_OPTION VARCHAR2(3)
DEFAULT_ROLE VARCHAR2(3)
OS_GRANTED VARCHAR2(3)
当为用户授予角色时,Oracle自动的添加该角色到用户的缺省角色列表中。
SQL> create user rhora identified by rhora;
用户已创建
SQL> grant connect, resource, dba to rhora;
授权成功。
SQL> conn rhora/rhora
已连接。
SQL> select * from user_role_privs;
USERNAME GRANTED_ROLE ADM DEF OS_
------------------------------ ------------------------------ --- --- ---
RHORA CONNECT NO YES NO
RHORA DBA NO YES NO
RHORA RESOURCE NO YES NO
注意:如果用户不具带有CREATE SESSION系统权限的缺省角色,就必须直接为该用户授予CREATE SESSION系统权限,
否则这个用户将不能建立数据库会话。
QL> conn /as sysdba
已连接。
SQL> alter user rhora default role resource;
用户已更改。
SQL> conn rhora/rhora
ERROR:
ORA-01045: user RHORA lacks CREATE SESSION privilege; logon denied
警告: 您不再连接到 ORACLE。
SQL> conn /as sysdba
已连接。
SQL> grant CREATE SESSION to rhora;
授权成功。
SQL> conn rhora/rhora
已连接。
SQL> select * from user_role_privs;
USERNAME GRANTED_ROLE ADM DEF OS_
------------------------------ ------------------------------ --- --- ---
RHORA CONNECT NO NO NO
RHORA DBA NO NO NO
RHORA RESOURCE NO YES NO
SQL>
将用户的角色connect, resource, dba重新添加到缺省列表中
SQL> conn /as sysdba
已连接。
SQL> alter user rhora default role connect,resource,dba;
用户已更改。
SQL> conn rhora/rhora
已连接。
SQL> select * from user_role_privs;
USERNAME GRANTED_ROLE ADM DEF OS_
------------------------------ ------------------------------ --- --- ---
RHORA CONNECT NO YES NO
RHORA DBA NO YES NO
RHORA RESOURCE NO YES NO
######################################################################################
启用和禁用角色
(1)会话可以使用带有ALL选项的SET ROLE命令来启用对帐号授权的所有角色。然而,当要启用需要口令的角色时,必须使用
IDENTIFIED BY参数指定该角色及其用户。
(2)使用SET ROLE命令的NONE选项可以禁用会话的角色。
(3)Oracle自动地禁用已经授权但没有使用SET ROLE命令启用的角色。
显示当前会话启用的角色列表,输入select * from session_roles 进行查询
SQL> conn /as sysdba
已连接。
SQL> create role appdev identified by yeTtw;
角色已创建
SQL> grant CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE ANY INDEX, CREATE SEQUENCE, CREATE TYPE
2 TO appdev;
授权成功。
SQL> create user rhora identified by rhora ;
用户已创建
SQL> grant connect, resource, select_catalog_role, hs_admin_role to rhora;
授权成功。
SQL> grant appdev to rhora;
授权成功。
SQL> conn rhora/rhora
已连接。
SQL> select * from session_roles;
ROLE
------------------------------
CONNECT
HS_ADMIN_ROLE
RESOURCE
SELECT_CATALOG_ROLE
APPDEV
如果密码输错就会报如下的错误:
SQL> set role appdev identified by abc;
set role appdev identified by abc
*
ERROR 位于第 1 行:
ORA-01979: 角色'APPDEV'缺少口令或口令无效
使用SET ROLE语句来启用APPDEV角色和禁用CONNECT, RESOURCE等其他角色。
SQL> set role appdev identified by yeTtw;
角色集
SQL> select * from session_roles;
ROLE
------------------------------
APPDEV
开启 CONNECT, RESOURCE角色
SQL> set ROLE
2 CONNECT,
3 RESOURCE
4 ;
角色集
SQL> SELECT * FROM SESSION_ROLES;
ROLE
------------------------------
CONNECT
RESOURCE
启用该用户原来具有的角色,注意:这条SET ROLE语句没有列出HS_ADMIN_ROLE, 它是SELECT_CATALOG_ROLE权限域的一部分。
这是因为Oracle自动启用被授予显示启用的角色的角色。
SQL> set ROLE
2 CONNECT,
3 RESOURCE,
4 SELECT_CATALOG_ROLE,
5 appdev IDENTIFIED By yeTtw;
角色集
SQL> select * from session_roles;
ROLE
------------------------------
APPDEV
CONNECT
RESOURCE
SELECT_CATALOG_ROLE
HS_ADMIN_ROLE
SQL>
######################################################################################
资源限制
表空间定额
ALTER USER lellison
QUOTA 5M ON users;
ALTER USER rlane
QUOTA UNLIMITED ON users;
向用户RLANE授予UNLIMITED TABLESPACE系统权限
GRANT UNLIMITED TABLESPACE TO rlane;
启用资源限制
缺省时,启动数据库不实施资源限制。因此,限制用户访问服务器资源所必需的第一步是启用在实例层强制资源限制。
使用下列格式的SQL命令ALTER SYSTEM, 在不关机和重启Oracle服务的状态下, 可以启用和禁用资源限制的强制实施。
ALTER SYSTEM
SET RESOURCE_LIMIT = {TRUE | FALES}
ALTER SYSTEM
SET RESOURCE_LIMIT = TRUE;
alter system 语句只对当前数据库实例有效,如果打算长期使用资源限制,比阿吉服务器的参数文件使其包含下列参数:
RESOURCE_LIMIT = TRUE
创建新的配置表,使用SQL命令CREATE PROFILE
CREATE PROFILE profile LIMIT
[SESSION_PER_USER { integer | UNLIMITED | DEFAULT}]
[CPU_PER_SESSION { integer | UNLIMITED | DEFAULT}]
[CPU_PER_CALL { integer | UNLIMITED | DEFAULT}]
[CONNECT_TIME { integer | UNLIMITED | DEFAULT}]
[IDLE_TIME { integer | UNLIMITED | DEFAULT}]
[LOGICAL_READS_PER_SESSION { integer | UNLIMITED | DEFAULT}]
[LOGICAL_READS_PER_CALL { integer | UNLIMITED | DEFAULT}]
[COMPOSITE_LIMIT { integer | UNLIMITED | DEFAULT}]
[PRIVATE_SGA { integer | UNLIMITED | DEFAULT}]
[FAILED_LOGIN_ATTEMPTS { integer | UNLIMITED | DEFAULT}]
[PASSWORD_LIFE_TIME { integer | UNLIMITED | DEFAULT}]
[PASSWORD_REUSE_TIME { integer | UNLIMITED | DEFAULT}]
[PASSWORD_REUSE_MAX { integer | UNLIMITED | DEFAULT}]
[PASSWORD_LOCK_TIME { integer | UNLIMITED | DEFAULT}]
[PASSWORD_GRACE_TIME { integer | UNLIMITED | DEFAULT}]
[PASSWORD_VERIFY_FUNCTION {NULL |function |DEFAULT}]
输入以下语句创建新的资源配置表:
CREATE PROFILE appdev LIMIT
SESSIONS_PER_USER 5
CPU_PER_SESSION UNLIMITED
CPU_PER_CALL 3000
CONNECT_TIME UNLIMITED
IDLE_TIME 30
LOGICAL_READS_PER_SESSION UNLIMITED
LOGICAL_READS_PER_CALL 1000
PRIVATE_SGA 200K;
配置表用户可以打开最多5个并发的数据库会话。
配置表用户的会话可以使用无限的CPU时间,但是每个数据库请求只有30秒的CPU时间(设置为3,000个百分之一秒)。如果一个
调用达到了这个CPU极限,那么Oracle就停止这个操作以避免该会话进一步消耗CPU时间。
配置表用户的会话可以不限时间的保持对这个实例的连接,而不必断开连接,但是在自动断开连接之前,只有30分钟的空闲时间。
配置用户的会话可以执行不限次数的逻辑读取(即可以从硬盘也可以从服务器内存中读取数据块),但是每个数据库请求只有1000个
逻辑块的读取操作。如果一个调用达到了这个限制,那么Oracle就停止这个操作以避免这个会话进一步消耗逻辑读取。
使用多线程服务器连接到实例的配置用户会话可以为MTS分配和使用最多200K占用内存。
更改配置表的设置
ALTER PROFILE profile LIMIT
[SESSION_PER_USER { integer | UNLIMITED | DEFAULT}]
[CPU_PER_SESSION { integer | UNLIMITED | DEFAULT}]
[CPU_PER_CALL { integer | UNLIMITED | DEFAULT}]
[CONNECT_TIME { integer | UNLIMITED | DEFAULT}]
[IDLE_TIME { integer | UNLIMITED | DEFAULT}]
[LOGICAL_READS_PER_SESSION { integer | UNLIMITED | DEFAULT}]
[LOGICAL_READS_PER_CALL { integer | UNLIMITED | DEFAULT}]
[COMPOSITE_LIMIT { integer | UNLIMITED | DEFAULT}]
[PRIVATE_SGA { integer | UNLIMITED | DEFAULT}]
[FAILED_LOGIN_ATTEMPTS { integer | UNLIMITED | DEFAULT}]
[PASSWORD_LIFE_TIME { integer | UNLIMITED | DEFAULT}]
[PASSWORD_REUSE_TIME { integer | UNLIMITED | DEFAULT}]
[PASSWORD_REUSE_MAX { integer | UNLIMITED | DEFAULT}]
[PASSWORD_LOCK_TIME { integer | UNLIMITED | DEFAULT}]
[PASSWORD_GRACE_TIME { integer | UNLIMITED | DEFAULT}]
[PASSWORD_VERIFY_FUNCTION {NULL |function |DEFAULT}]
ALTER PROFILE appdev LIMIT
FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LOCK_TIME 1
PASSWORD_LIFE_TIME 30
PASSWORD_GRACE_TIME 5
PASSWORD_REUSE_TIME UNLIMITED
PASSWORD_REUSE_MAX UNLIMITED;
配置表用户连续3个登录不成功之后,Oracle自动地锁定该帐号。
如果以为连续3个的失败登录而导致Oracle锁定了配置表用户的帐号,那么Oracle就会保持锁定该帐号整整一天,然后自动解锁帐号。
配置表用户的口令寿命为30天,加上一个个5天的宽限期限,之后,用户必须改变口令,否则Oracle锁定这个帐号。
配置表用户不能重用旧的口令。
Oracle8i强制实施在用户配置表中所设置的全部口令管理特性,无论是否启用带有ALTER SYSTEM 命令或者RESOURCE_LIMIT服务器参数
的资源限制。
######################################################################################
手工强制用户口令终止
要求该用户在下一个会话期间改动这个口令。ALTER USER user PASSWORD EXPIRE
SQL> conn /as sysdba
已连接。
SQL> alter user yzhq
2 password expire;
用户已更改。
SQL> conn yzhq/yzhq
ERROR:
ORA-28001: the password has expired
更改yzhq的口令
新口令:
重新键入新口令:
口令已更改
已连接。
SQL>
######################################################################################
设置用户的配置表
缺省时,所有的用户都分配使用数据库的缺省配置表。为了将用户的配置表设置成另一个配置表,可以使用下列格式的
SQL命令ALTER USER.
ALTER USER user
PROFILE profile
SQL> alter user yzhq profile appdev;
用户已更改。
SQL> conn yzhq
请输入口令:
ERROR:
ORA-01017: invalid username/password; logon denied
警告: 您不再连接到 ORACLE。
SQL> conn yzhq
请输入口令:
ERROR:
ORA-01017: invalid username/password; logon denied
SQL> conn yzhq
请输入口令:
ERROR:
ORA-01017: invalid username/password; logon denied
SQL> conn yzhq
请输入口令:
ERROR:
ORA-28000: the account is locked
######################################################################################
更改缺省数据库的配置表
使用ALTER PROFILE语句可以调整缺省数据库的设置。
禁用缺省数据库配置表的口令管理特性。
ALTER PROFILE default LIMIT
PASSWORD_LIFE_TIME UNLIMITED
PASSWORD_REUSE_TIME UNLIMITED
PASSWORD_REUSE_MAX UNLIMITED
PASSWORD_LOCK_TIME UNLIMITED
PASSWORD_GRACE_TIME UNLIMITED
PASSWORD_VERIFY_FUNCTION NULL;
######################################################################################
使用口令复杂性检查
可以使用SQL命令CREATE PROFILE和ALTER PROFILE的PASSWORD_VERIFY_FUNCTION参数连检验配置表用户口令的复杂性。
为了启用所有配置表用户的口令复杂性检查,将配置表的PASSWORD_VERIFY_FUNCTION参数设置为一个函数名,这个函数被
用于检查口令的复杂性。Oracle提供了缺省函数,该函数必须用位于$ORACLE_HOME/rdbms/admin/目录中的utlpwdmg.sql
命令脚本来创建。为了运行该脚本,用SYS来连接。
SQL> @$ORACLE_HOME/rdbms/admin/utlpwdmg.sql
函数已创建。
配置文件已更改
SQL>
SQL> create user rhora2 identified by ac;
create user rhora2 identified by ac
*
ERROR 位于第 1 行:
ORA-28003: 指定口令的口令验证失败
ORA-20002: Password length less than 4
SQL> create user rhora2 identified by rhora2;
create user rhora2 identified by rhora2
*
ERROR 位于第 1 行:
ORA-28003: 指定口令的口令验证失败
ORA-20001: Password same as or similar to user
SQL> create user rhora2 identified by welcome;
create user rhora2 identified by welcome
*
ERROR 位于第 1 行:
ORA-28003: 指定口令的口令验证失败
ORA-20002: Password too simple
SQL> create user rhora2 identified by becvx;
create user rhora2 identified by becvx
*
ERROR 位于第 1 行:
ORA-28003: 指定口令的口令验证失败
ORA-20003: Password should contain at least one digit, one character and one
punctuation
SQL> create user rhora2 identified by rmok3h#a;
用户已创建
SQL> drop user rhora2;
用户已丢弃
SQL> create user rhora2 identified by becvx3#;
用户已创建
SQL> alter user rhora2 identified by "becv%3";
用户已更改。
旧口令:becv%3
新口令:becv#9
SQL> conn rhora2
请输入口令:
已连接。
SQL> password
更改RHORA2的口令
旧口令:
新口令:
重新键入新口令:
ERROR:
ORA-28003: 指定口令的口令验证失败
ORA-20004: Password should differ by at \
least 3 characters
口令未更改
SQL>
更改APPDEV配置表以便使用数据库缺省配置表(SYS.VERFY_FUNCTION)的PASSWORD_VERFY_FUNCTION参数。
ALTER PROFILE appdev LIMIT
PASSWORD_VERIFY_FUNCTION DEFAULT;
######################################################################################
显示有关用户的信息
SQL> SELECT username, account_status, default_tablespace, temporary_tablespace, profile
2 FROM dba_users
3 WHERE username IN ('RHORA','RHORA1');
USERNAME ACCOUNT_STATUS
------------------------------ --------------------------------
DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
------------------------------ ------------------------------
PROFILE
------------------------------
RHORA1 OPEN
SYSTEM TEMP
DEFAULT
显示有关角色的信息
SQL> select * from dba_roles
2 where role IN ('CONNECT', 'RESOURCE', 'DBA', 'APPDEV');
ROLE PASSWORD
------------------------------ --------
APPDEV YES
DBA NO
RESOURCE NO
CONNECT NO
SQL>
显示有关表空间定额的信息
为了显示在数据库中为每个表空间授予的有关分配额的信息,可以查询DBA_TS_QUOTAS数据字典视图。
SQL> SELECT tablespace_name, username, bytes, max_bytes
2 FROM dba_ts_quotas;
TABLESPACE_NAME USERNAME BYTES MAX_BYTES
------------------------------ ------------------------------ ---------- ----------
CWMLITE OLAPSYS 15663104 -1
STATSPACK PERFSTAT 96206848 -1
SQL>
当用户有无限的表空间定额时,DBA_TS_QUOTAS视图的MAX_BYTES列显示代码"-1"。
显示用户的配置表的信息
SQL> SELECT profile, resource_name, limit
2 FROM dba_profiles
3 WHERE profile = 'APPDEV';
PROFILE RESOURCE_NAME LIMIT
------------------------------ -------------------------------- ----------------------------------------
APPDEV COMPOSITE_LIMIT DEFAULT
APPDEV SESSIONS_PER_USER 5
APPDEV CPU_PER_SESSION UNLIMITED
APPDEV CPU_PER_CALL 3000
APPDEV LOGICAL_READS_PER_SESSION UNLIMITED
APPDEV LOGICAL_READS_PER_CALL 1000
APPDEV IDLE_TIME 30
APPDEV CONNECT_TIME UNLIMITED
APPDEV PRIVATE_SGA 204800
APPDEV FAILED_LOGIN_ATTEMPTS 3
APPDEV PASSWORD_LIFE_TIME 30
PROFILE RESOURCE_NAME LIMIT
------------------------------ -------------------------------- ----------------------------------------
APPDEV PASSWORD_REUSE_TIME UNLIMITED
APPDEV PASSWORD_REUSE_MAX UNLIMITED
APPDEV PASSWORD_VERIFY_FUNCTION DEFAULT
APPDEV PASSWORD_LOCK_TIME 1
APPDEV PASSWORD_GRACE_TIME 5
已选择16行。
SQL>
######################################################################################
相关推荐
授予权限是 Oracle 权限大全的重要内容,包括授予创建 session 的权限、授予使用表空间的权限、授予创建表的权限、授予删除表的权限、授予插入表的权限、授予修改表的权限等多种权限。 grant 命令是授予权限的基本...
在这个“Oracle权限全集”中,我们将深入探讨Oracle数据库中的各种权限类型、权限的授予与撤销、角色的使用以及与权限相关的其他关键概念。 1. **权限类型** - **对象权限**:针对特定对象(如表、视图、序列、...
### Oracle权限管理详解 在Oracle数据库管理中,权限管理是一项重要的功能,它涉及到数据库的安全性和数据访问控制。本文将基于提供的文件信息,详细介绍Oracle中如何创建用户、分配及撤销权限等关键操作,并深入...
### Oracle权限管理详解 #### 一、Oracle权限概述 Oracle数据库通过权限管理机制来确保数据的安全性和完整性。权限主要包括系统权限(SYS PRIVILEGES)和对象权限(OBJECT PRIVILEGES)。系统权限允许用户执行特定...
"lesson_xml_pm3"可能是一个关于Oracle权限设计的课程或教程文件,可能包含了具体的案例、练习或脚本,用于帮助学习者理解和实践Oracle权限设计的方法。通过学习这个资源,你可以更深入地了解如何在实际环境中设计和...
我现在想从我的存储过程中使用其他 schema 表来执行 SQL 语句。存储过程是一个 Schema,表是在另一个 Schema。...是在同一个 Oracle 实例中,数据库是 Oracle 10g。 答:你的两个 Schema 是在同一个 Oracle 实
Oracle权限管理是数据库管理系统中确保数据安全性和控制访问权限的核心机制。在Oracle中,权限管理主要分为系统权限和对象权限两大类,通过这两类权限,管理员可以精细地控制用户对数据库资源的访问。 系统权限涉及...
Oracle权限管理是数据库系统中至关重要的一个环节,它确保了数据的安全性和访问控制。在Oracle 10g和11g版本中,权限管理机制经过精心设计,为管理员提供了多种工具和策略来管理用户访问权限。本文将深入探讨Oracle...
### Oracle权限设置详解 在Oracle数据库管理中,权限设置是一项非常重要的任务,它不仅涉及到数据库的安全性,还关乎数据的完整性和系统的稳定性。本文将基于提供的文件信息中的内容,详细介绍Oracle权限设置的相关...
"Oracle权限"指的是在数据库中为用户分配特定的操作权限,以便他们能够执行必要的任务而不会对其他数据造成不必要的影响。`expdp_scode`是Oracle Data Pump导出工具的一个示例,用于将数据和对象从数据库导出到外部...
### Oracle权限函数详解 在Oracle数据库管理中,权限管理是一项重要的任务,它涉及到对用户、角色及对象等数据库实体的访问控制。通过合理地分配权限,可以有效地保护数据的安全性和完整性,同时确保业务流程的正常...
Oracle权限管理是数据库安全的重要组成部分,它确保了对数据库资源的正确访问和控制。在Oracle中,权限分为系统权限和对象权限。系统权限涉及到数据库级别的操作,如创建表、索引、用户等;对象权限则涉及到对特定表...
Oracle 权限设置 一、权限分类: 系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而言)。 实体权限:某种权限用户对其它用户的表或视图的存取权限。(是针对表或视图而言的)。 二、系统权限管理: 1、...
以下是对Oracle权限和角色的详细解释。 首先,我们要理解什么是角色。角色是一组权限的集合,它可以被赋予一个或多个用户,使得用户获得角色中定义的所有权限。这样,当有一组用户需要相同的权限时,只需一次性地...
### Oracle权限管理详解 在Oracle数据库管理中,权限管理是一项非常重要的任务,它涉及如何控制用户对数据库资源的访问以及他们能执行的操作类型。本文将详细介绍Oracle中的权限管理概念、不同类型的权限及其授予与...
以下是对标题和描述中提到的一些关键Oracle权限的详细解释: 1. **ALTER权限**:这些权限允许用户修改数据库中的对象。例如,`ALTER TABLE`权限允许用户更改表的结构,如添加或删除列,而`ALTER USER`权限允许DBA...
Oracle权限分为两种基本类型:系统权限和对象权限。系统权限涉及到对数据库整体操作的访问,如创建表、执行DML(数据操纵语言)语句、备份数据库等。对象权限则针对特定数据库对象,如查看、修改、删除某张表的数据...
3. **Oracle权限管理**: - **系统权限**:用于执行数据库维护任务,如创建表、索引、用户等。这些权限可以通过`GRANT [system_privilege] TO user_name;`语句授予。 - **对象权限**:针对特定数据库对象,如表、...