跳至主要内容

Oracle学习笔记20071227

管理角色
角色类似于部门,成员,某个部门需要有特殊的权限,而对应得员工就应该有相应的权限
对应语句
SQL>CREATE ROLE oe_clerk;
SQL>CREATE ROLE hr_clerk IDENTIFIED BY bonus;
SQL>CREATE ROLE hr_manager IDENTIFIED EXTERNALLY;

已经定义好的角色connect,resource,dba 这些权利提供了什么什么的协调性(backward compatibility)
exp_full_database 管理进入的database
imp_full_database 管理出去的database
delete_catalog_role delete权限角色
execute_catalog_role execute执行权限角色
select_catalog_role select权限角色

修改角色
SQL>ALTER ROLE oe_clerk IDENTIFIED BY order;
SQL>ALTER ROLE hr_clerk IDENTIFIED EXTERNALLY;
SQL>ALTER ROLE hr_manager NOT IDENTIFIED;


分配角色:
SQL>GRANT oe_clerk TO scott;
SQL>GRANT hr_clerk TO hr_manager;
SQL>GRANT hr_manager TO scott WITH ADMIN OPTION;


建立默认的角色:
SQL>ALTER USER scott DEFAULT ROLE hr_clerk, oe_clerk;
SQL>ALTER USER scott DEFAULT ROLE ALL;
SQL>ALTER USER scott DEFAULT ROLE ALL EXCEPT hr_clerk;
SQL>ALTER USER scott DEFAULT ROLE NONE;


运用角色(Application roles)
SQL>CREATE ROLE admin_role IDENTIFIED USING hr.employee;

admin_role就是一个应用角色,只能通过hr.employee里面定义的模块来启用

开启和关闭角色
SET ROLE选项开启和关闭角色

SQL>SET ROLE hr_clerk;
SQL>SET ROLE oe_clerk IDENTIFIED BY order;
SQL>SET ROLE ALL EXCEPT oe_clerk;

可以使用alter user ... default role来指定用户登录时的缺省角色
SQL>set role oe_clerk identified by order;
SQL>set role all except oe_clerk;

后面的命令只在所有的角色不需要密码时才可以
回收角色权限
SQL>REVOKE oe_clerk FROM scott;
SQL>REVOKE hr_manager FROM PUBLIC;

删除角色
SQL>DROP ROLE hr_manager;

和role有关的视图
DBA_ROLES,DBA_ROLE_PRIVS,ROLE_ROLE_PRIVS,DBA_SYS_PRIVS,ROLE_SYS_PRIVS,ROLE_TAB_PRIV,SSESSION_ROLES

全球支持Unicode 数据类型选择数据库字符集考虑事项数据库必须支持哪些语言?
有哪些互操作与系统资源和应用程序相关?对性能的要求如何?有哪些限制条件?尽管数据库可以维护和处理实际字符数据,但是您还必须依赖操作系统中的其它资源。
例如,操作系统提供与所选字符集相对应的字体。另外,支持所需语言和应用程序软件的输入法也必须与特定字符集保持一致。如果所选的字符集与操作系统中的可用字符集不同,Oracle 会将操作系统字符集转换为数据库字符集。但是,这样做会产生一些字符集转换开销,同时您应确保操作系统字符集中包含等价的全套字符,以避免可能出现的数据丢失情况。为了获得最佳性能,您应该尝试选择一个无需进行转换的字符集,并将对所需语言使用最有效的编码方案。单字节字符集在性能方面要优于多字节字符集,此外,在空间需求方面,该字符集也是最有效的。但是
,单字节字符集对所能使用的语言数目有所限制。
AL16UTF16 和 UTF8 这两种选择都适用于国家字符集。AL16UFT16 是宽度固定的双字节 Unicode 字符集。而 UTF8 是宽度可变的、一至三个字节的 Unicode 字符集。欧洲字符在 UTF8 中按一至两个字节存储,而在 AL16UTF16 中按两个字节存储,相比之下,前一种 选择可以节省空间。亚洲字符在 UTF8 中按三个字节存储,这样,所需的空间比在 AL16UTF16 中要多。要将多语言 BLOB 和 Oracle 文本一起使用,则必须使用 Unicode 数据库解决方案。初始化参数 NLS_LANGUAGE 定义语言相关惯例值,例如:Oracle 消息所使用的语言日期和月份名称及其缩写所使用的语言a.m.、p.m.、A.D. 和 B.C. 的等价语言所使用的符号缺省的字符数据排序顺序初始化参数 NLS_LANGUAGE 定义地域相关惯例值,其中包括:缺省日期格式十进制字符和组分隔符本地货币符号ISO 货币符号ISO 周数计算一周起始日当地域名包含空格时,如 The Netherlands,应该用双引号将地域名引起来,如 “The Netherlands”。
相关语言和地域的缺省值
NLS_LANGUAGE : AMERICANNLS_DATE_LANGUAGE : AMERICANNLS_SORT : BINARYNLS_TERRITORY :AMERICANLS_ISO_CURRENCY :AMERICANLS_DATA_FORMATE :
DD-MON-RR初始化参数
NLS_LANGUAGE 确定下列参数的缺省值:NLS_DATE_LANGUAGE:显式更改日期、月份名及其缩写和其它日期格式元素的拼写值所使用的语言。
NLS_SORT:更改 Oracle 服务器用于排序字符值的文字排序顺序(排序值必须是是文字排序顺序名。)NLS_CURRENCY:显式指定新的本地货币符号NLS_ISO_CURRENCY:显式指定应使用 ISO 货币符号的地域NLS_DATE_FORMAT:显式指定新的缺省日期格式(值必须是 日期格式模型。)NLS_NUMERIC_CHARACTERS:显式指定新的十进制字符和组分隔符1999 年 1 月 1 日,欧共体新货币-欧元首次亮相。为了支持这个新的欧共体货币,新增 了对特定国家
的双重货币支持。初始化参数 NLS_DUAL_CURRENCY 为用户会话设置一个代用货币符号。WE8ISO8859P15 和 MS 代码页 WE8MSWIN1252 等 ISO 字符集已指定了欧元符号的代 码点。NLS_LANG=_.只有在客户环境中才能设置下列变量:NLS_CREDITNLS_DEBITNLS_DISPLAYNLS_LANGNLS_LIST_SEPARATORNLS_MONETARY如果将环境变量 ORA_NLS33 设置为无效目录,则有可能仅能使用缺省字符集 US7ASCII 创建数据库。
在 UNIX 上,ORA_NLS33 应该设置为: $ORACLE_HOME/ocommon/nls/admin/data如果未设置 ORA_NLS33,这即是缺省设置。ALTER SESSION SET NLS_DATE_FORMAT=‘DD.MM.YYYY’;DBMS_SESSION.SET_NLS(‘NLS_DATE_FORMAT’, ’’’DD.MM.YYYY’’’) ;文字排序二进制排序是一种传统排序机制,它依据字符编码所用的二进制值对字母进行排序。对于不同的语言,字符在字母表里的位置可能有所不同。对于单语言排序,Oracle 在比较按单语言顺序排序的字符串时要执行两遍排序。第一遍排序是比较主表中
整个字符串的主值,第二遍排序是比较次表中的次值。通常,具有相同外观的字母的主值也相同。Oracle 根据音调符号和大小写的不同来区分主值相同而次值不同的字母。单语言排序要优于二进制排序,但仍存在限制。对于多语言排序,Oracle 提供了一种基于 ISO 标准 (ISO14651) 和 Unicode 3.0 标准的排序机制。这样,就可以对每种语言的每个编码字符进行正确地排序。
SQL> SELECT num, word, def2 FROM list3 ORDER BY NLSSORT
(word,'NLS_SORT=FRENCH_M');在 SQL 函数中使用 NLS 参数SQL 字符函数支持单字节和多字节字符。有些 SQL 函数需要将 NLS 参数显式指定为其参数列表的一部分。因此,SQL 函数可以覆盖环境所指定的
行为。
SQL>SELECT TO_CHAR(hire_date,’DD.Mon.YYYY’,‘NLS_DATE_LANGUAGE=FRENCH’)
FROM employees;
SQL>SELECT ename,
TO_CHAR(sal,’9G999D99’,‘NLS_NUMERIC_CHARACTERS=‘‘,.’’’) FROM emp;

函数 NLS 参数 TO_DATE NLS_DATE_LANGUAGE,NLS_CALENDARTO_NUMBER NLS_NUMERIC_CHARACTERS,NLS_CURRENCY,NLS_ISO_CURRENCYTO_CHAR NLS_DATE_LANGUAGE,NLS_NUMERIC_CHARACTERS,NLS_CURRENCYNLS_ISO_CURRENCYNLS_CALENDARNLS_UPPER, NLS_LOWER NLS_SORTNLS_INITCAP, NLSSORT 数字格式掩码元素:“D” 代表十进制分隔符“G” 代表组(千位)分隔符“L” 代表本地货币符号“C” 代表本地 ISO 货币符号“U” 代表欧元的双重货币符号日期格式掩码元素:“RM, rm” 代表罗马月份数字“IW” 代表 ISO 星期号“IYYY, IYY, IY,” 和 “I” 代表 ISO 年份函数型索引专门用于创建按文字排序的索引。SQL 函数 NLSSORT 以给定的文字排序顺序返回用于对第一个参数排序的字节串。通过本地排序获取高性能 CREATE INDEX list_word ON list (NLSSORT(word, ‘NLS_SORT = French_M’));NLS_COMP 是一个动态初始化参数,它用于控制 <、> 和 = 等比较运算符处理文字顺序的方式。当这个参数设置为 BINARY(缺省设置)时,将基于字符串的二进制值进行比较。当设置为 ANSI 时,比较运算符通过文字排序顺序来确定依据 NLS_SORT 会话参数执行的操作结果。在导入过程中,数据将从导出文件字符集转换成数据库 字符集。SQL*Loader:常规路径:将数据转换为 NLS_LANG 指定的会话字符集。直接路径:数据直接转换为数据库字符集
NLS_DATABASE_PARAMETERS:PARAMETER(NLS_CHARACTERSET, NLS_NCHAR_CHARACTERSET)VALUE
NLS_INSTANCE_PARAMETERS:PARAMETER(已显式设置的初始化参数)VALUENLS_SESSION_PARAMETERS:PARAMETER(会话参数)VALUEV$NLS_VALID_VALUES:PARAMETER (LANGUAGE, SORT, TERRITORY, CHARACTERSET)VALUEV$NLS_PARAMETERS:PARAMETER (NLS 会话参数,NLS_CHARACTERSET)VALUEV$NLS_VALID_VALUES 视图显示出 NLS 数据引导文件的内容。它返回一个随给定数据库版本一起提供的列
表,该列表包含所有字符集、语言、文字排序以及地域定义。该列表中可能还包含不受支持或内部使用的定义。其它视图可能包含有一个新列 CHARACTER_SET_NAME,用于显示字符集的名称:CHAR_CS 是数据库字符集的名称,NCHAR_CS 是国家字符集的名称。 字符集扫描程序扫描数据库,以确定字符集是否可以进行更改提供详细说明问题及解决方法的报表Oracle 区域设置构建器 (Oracle Locale Builder)易于使用图形界面用于查看、修改和创建区域设置定义字符集扫描程序是命令行实用程序,用于辅助字符集转换。扫描程序可以标识字符集转换和数据截断可能发生的区域、所需的工作量以及应该扩展的列的宽度。它提供可行性评估、报告潜在的移植问题、检查所有字符数据并生成数据库扫描摘要。在转换任意字符集前,都应该使用字符集扫描程序。Oracle9i 服务器提供了一组完整的区域设置定义,包括语言、地域、字符集和文字排序。如果需要对任何现有的区域设置定义进行自定义,或者创建新的区域设置定义,则可以使用新增的 Oracle 区域设置构建器 (Oracle Locale Builder),它提供了一种简单易用的图形用户界面,使您可以轻松地查看、自定义和定义各种区域设置。

上面的中文是完全从网络上抄下来的,因为队伍GOBAL设定来说,更多的是时间设定,所以暂时没有这方面的需要。而且似乎目前以上的中文在排版方面字有点看不清楚,而具体的链接我放在study link上来哦,名字是OCP

下面开始Database Administration Fundamentals II-二合一的学习
第一章网络网络所遇到的挑战控制网络环境,维护网络(maintaining the network),协调,排难,监控网络,9i的网络解决方案联系,直接服务器,安全,可接近的,可攀登的
连接性:Oracle Net Services
与协议无关
支持多种平台集成的
GUI 管理工具
多种配置选项
跟踪和诊断工具集
基本安全性

-------------------------------分割线----------------------------------------


《投名状》——领悟10条人生哲理
1、对兄弟,忠诚要有个度。过了度,被杀了都不知道是咋死的。
2、从一无所有到腰缠万贯或权倾一时是展现你权衡上下关系的时候。
3、后台没人,你在前台再风光也只是一时的。
4、赢得了天下输了她的事情无处不在。
5、人总以为眼前平坦便高枕无忧,可在我们后边永远是未知。
6、患难之交随着身份和地位的改变,这份交情早已变质,守着那份承诺,你能落得可怜。
7、你可以用实力来证明自己的与众不同,但美好的结局却未必是你所能享受得了的。
8、你无论何时都要谦虚地向前辈取经,尽管你可能一点都不喜欢他们,但他们的一言一行足够让你从天堂到地狱。
9、如果你连兄弟与女人都不知道该如何取舍,就说明你不配做大哥。
10、一条汉子,说过的话不可不算

言简意赅

评论

此博客中的热门博文

Python学习笔记20100117

映射list   Dictionary 是用{}. list 是一那个[]. turple是用() 当你定义过dictionary后,你可以使用d.keys(), d.values(),d.items()将定义后的时候分别显示出来 当然可以将list里的值加减乘除,也可以如一般的定义直接重新复制这个list. 链接与分割字符串的 li=";", join(li) 则显示的就是 分隔符为;的数 如果使用li=li.split(";")则将刚刚;的分隔符删除,而split里也可定义域,如li.split(";",1)   自省 <---这是啥 之前在使用的时候发觉有些书本上的模块不能调用,很多是py脚本定义过的函数。 下载该脚本s,然后上传至指定位置。 >>>import sys >>>sys.path >>>sys.path.append("绝对位置")然后就能调用这些脚本和参数了。 删除 >>>sys.path.pop() 定义一个参数是 def info(test, test1=10.test2=12): info是函数名,test是必备参数,因为没有定义值,test1和test2是可选参数,定义了初始值   以上是外部函数的调用,下面转到内部函数 内部函数有type,str,dir及其他   ---type 返回任意字符的类型,模块也可以。types模块 >>> type(1) <type 'int'> >>> li=[] >>> type(li) <type 'list'> >>> import odbchelper >>> type(odbchelper) <type 'module'> >>> type(sys) <type 'module'> >>> import types ...

Python学习笔记20100128

methodList = [method for method in dir(object) if callable(getattr(object, method))] ###插一句, ifconfig pcn0 unplumb 去禁solaris的网卡plumb起网卡   and, or  已经and-or一起用。 and 两者为真,print第二个数,一个为假一个为真返回假,三者为真返回最后一个真。 or 两个为真,返回第一个, 一个为假一个为真返回真,三者为假返回最后一个假   lambda可快速定义最小值函数   g = lambda x:x*2 g(3) 6 (lambda x:x*2)(3)   doc string print getattr(object,mothod).__doc__   ljust ljust 用空格填充字符串以符合指定的长度。info 函数使用它生成了两列输出并将所有在第二列的 doc string 纵向对齐。 如果小于的话不会从中截断   -----面向对象 首先导入,你可以选择import module or from module import module 如果你要经常访问模块的属性和方法,且不想一遍又一遍地敲入模块名,使用 from module import。 如果你想要有选择地导入某些属性和方法,而不想要其它的,使用 from module import。 如果模块包含的属性和方法与你的某个模块同名,你必须使用 import module 来避免名字冲突   -----类的定义 class Lofs    pass   这个类的名字是 Loaf,它没有从其它类继承。 类名通常是第一个字母大写,如:EachWordLikeThis,但这只是一个习惯,不是一个必要条件。   这个类没有定义任何方法或属性,但是从语法上,需要在定义中有些东西,所以你使用 pass。这是一个 Python 保留字,仅仅表示 “向前走,不要往这看”。它是一条什么都不做的语句,当你删空函数或类时,它是一个很好的占位符。   你可能猜...

Back to Blog again

     My last blog was almost 6 years again.  lots of things happening those years. like marriage, and move to another country, simply relocation, something is very big in my life.      Back to now,  I guess it is a very good time to start with the blog again. no matter daily life or the tech parts.      These blog may or will contains various languages, Chinese, English or Few Japanese. The first thing, I change the profile to Kamata life, Kamata is Japanese words. "鎌田"  as Kanji. why this change happened, due to we will move from Tamagawa "玉川" to Kamata very soon. I hope I can start to write this not daily, but I hope I can do this continuously.