1.登陆
Oracle安装会自动的生成sys用户和system用户 (1)、sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户默认的密码是change_on_install (2)、system用户是管理操作员,权限也很大。具有sysoper角色,没有create database的权限,默认的密码是manager (3)、一般讲,对数据库维护,使用system用户登录就可以拉 注意:也就是说sys和system这两个用户最大的区别是在于有没有create database的权限。 |
||
sys用户以sqlplus /as sysdba方式登录时,采用的是操作系统验证的方式,所以用户名、密码输入与不输入是一样的 |
||
查询当前登录用户: |
显示当前用户: |
|
切换用户 |
conn 用户名/密码@网络服务名 [as sysdba/sysoper] 特权用户连接是需要带上 disc/disconn/disconnect该命令用来断开与当前数据库的连接 |
|
解锁用户 |
SQL> Alter user acc01 account lock; // 加锁 SQL> Alter user acc01 account unlock; // 解锁 |
|
创建用户 |
create user username identified by password |
|
用户权限授权、角色管理 |
权限分类: 1.系统权限:DBA( 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构)、RESOURCE(只可以创建实体,不可以创建数据库结构)、CONNECT(只可以登录Oracle,不可以创建实体,不可以创建数据库结构) =====系统权限补充========= Oracle提供了100多种系统权限,常用的有: create session 连接数据库 显示所有系统权限:可以查询数据字典视图system_privilege_map select * from system_privilege_map order by name; ========================== 2.实体权限(对象权限):用户可以直接访问自己方案的对象,但是如果要访问别的方案的对象,则必须具有对象的权限,比如smith用户要访问scott.emp表(scott:方案 ,emp:表) select, update, insert, alter, index, delete, reference(引用),execute(执行),all //all包括所有权限 显示用户或者角色所具有的对象权限: 可以查询数据字典视图dba_tab_privs SQL> select distinct privilege from dba_tab_privs; dba_tab_privs where grantee = 'BLAKE'; ------------------------------------------------------------------------------------------------------ 角色管理: 1.创建角色 验证的方式:create role 角色名 not identified; 不验证的方式:create role 角色名 identified by 密码; 2.角色赋予权限: 方法1:(1.登录权限2.使用表空间权限3-6:增删改查权限) 方法2:使用数据库本身的角色 注意:系统权限的unlimited tablespace和对象权限的with grant option选项是不能授予角色的。 普通开发者拥有connect角色(create session登录)、resource角色(create cluster聚簇 procedure过程 sequence序列 table表 trigger触发器 type 类型 及删改查功能 不包含创建视图权限)就可以了。 3.授予角色给用户(要有grant any role 权限) grant role1 to user1; 4.删除角色(要有drop any role权限) SQL> drop role 角色名; 5.显示角色信息 显示所有角色:select * from dba_roles; 显示角色具有的系统权限:select * from role_sys_privs; 显示角色具有的对象权限:select distinct privilege from dba_tab_privs; 显示用户具有的角色及默认角色:select granted_role, default_role from dba_role_privs where grantee = ‘用户名’; --------------------------------------------------------------------------------------------------- 3.查看 查看用户角色 select * from user_role_privs; 使用dba_role_privs不行是为什么呢(sys用户可以用,是因为user开头的返回当前用户对应方案的所有表,dba开头的显示所有方案拥有的数据库表但是用户必须是dba角色,如7.1数据字典所述)? 查看当前用户的权限 select * from session_privs; ------------------------------------------------------------------------------------------------------ 4.权限传递与回收 1、with admin option用于系统权限授权,with grant option用于对象授权。 2、with admin option:,此用户可把此系统权限授予其他用户或角色,但收回这个用户的系统权限时,这个用户已经授予其他用户或角色的此系统权限不会因传播无效(不可以级联回收),如授予A系统权限create session with admin option,然后A又把create session权限授予B,但管理员收回A的create session权限时,B依然拥有create session的权限,但管理员可以显式收回B create session的权限,即直接revoke create session from B.
with grant option:被授予的用户也可把此对象权限授予其他用户或角色,不同的是但管理员收回用with grant option授权的用户对象权限时,权限会因传播而失效(级联回收),如grant select on table with grant option to A,A用户把此权限授予B,但管理员收回A的权限时,B的权限也会失效,但管理员不可以直接收回B的SELECT ON TABLE 权限。
|
|
用户其他命令 |
1.修改用户密码 passw 或 (password 用户名) 或 alter user 用户名 identified by 新密码 2.删除用户 drop user 用户名 [cascade 参数用户将用户跟表一同删除] 2.显示当前用户名 show user 3.断开数据库链接 exit 4.清空屏幕 clear screen |
|
Plsql连接数据库 |
D:\software\oracle\app\oracle\product\11.2.0\server\network\ADMIN中tnsnames.ora文件中配置链接地址,再由plsql登录窗口进行访问 |
|
profile |
用户口令管理 |
|
2.数据类型
数据类型 |
||
字符串类型的数据可依编码方式分成数据库字符集(CHAR/VARCHAR2/CLOB/LONG)和国际字符集(NCHAR/NVARCHAR2/NCLOB)两种。 |
||
字符串类型 |
CHAR |
定长,默认长为1,最多存储2000字节信息, 例:CHAR(12 BYTE) CHAR(12 CHAR) byte:字节数据类型,有符号型,占一个字节 -128~127 char:字符数据类型,无符号型,占两个字节0~65535,一个unicode字符,可表示中文字符 |
VARCHAR2 |
变长字符串,不使用空格填充,最多存储4000字节信息 |
|
NCHAR |
包含unicode格式数据的定长字符串,最多存储2000字节 |
|
NVARCHAR2 |
包含unicode格式数据的变长字符串,最多存储4000字节 |
|
数字类型 |
NUMBER(P,S) |
P:有效数字位数,最多不超过38个字 S:小数的位数 |
INTEGER |
等同于NUMBER(38,0) 整数,若有小数会被四舍五入 |
|
浮点数 |
BINARY_FLOAT:32位 单精度 BINARY_DOUBLE:64位 双精度 |
|
FLOAT(N) |
N指示位的精度 |
|
日期类型 |
DATE |
占7个字节 存储:世纪、年、月、日期、小时、分钟和秒 |
TIMESTAMP |
占7或12字节 可以包含小数秒 |
|
TIMESTAMP WITH TIME ZONE TIMESTAMP WITH LOCAL TIME ZONE INTERVAL YEAR TO MOTH INTERVAL DAY TO SECOND |
||
LOB类型: 存储大型化和非结构化数据如文本、图像、视频等 |
CLOB |
单字节和多字节数据 |
NCLOB |
存储unicode类型数据 |
|
BLOB |
存储非结构化的二进制数据大对象,一般是图像、声音、视频等文件 |
|
BFILE |
二进制文件,存储在数据库外的系统文件,只读的 |
|
RAW&LONG RAW |
LONG |
可以存储多达2G的字符数据,建议使用CLOB代替LONG. 一个表中只有一列可以为LONG型,该列不能定义为主键或唯一约束,不能建立索引,不能出现在where子句。。。 |
LONG RAW |
能存储2GB 的原始二进制数据(不用进行字符集转换的数据) |
|
RAW |
用于存储二进制或字符类型数据,变长二进制数据类型,这说明采用这种数据类型存储的数据不会发生字符集转换。这种类型最多可以存储2,000字节的信息 |
|
ROWID&UROWID |
唯一物理记录 |
3.表
创建表 |
create table student ( xh number(4), --学号 xm varchar2(20), --姓名 sex char(2), --性别 birthday date, --出生日期 sal number(7,2) --奖学金 |