1.oracle标识符命名规则:
(1)不能是保留字
(2)必须1-30个字符
(3)必须以数据库字符集中的字母字符开头
(4)只能包含数据库字符集中的字母字符,以及:#、$、_
(5)不能包括单引号或双引号
2.在实际应用中,用户应该避免使用sys,system,scott等账户,应该建立自己的用户账户。
connect system/system
create user lzm identified by lzm;
grant create session,dba to lzm;
create session是一个系统权限,可以为用户提供连接数据库的能力。
3.重置密码(密码不能只是数字):任何用户都有能力修改自己账户的密码,系统管理员有能力重置其他用户的账户。
alter user lzm identified by lll;
4.锁定/解除账户:(必须具有解除账户权限的用户账户才能执行解除锁操作)
alter user lzm account lock;
alter user lzm account unlock;
5.oracle 10g有一个与以往版本不同的特点,在默认情况下,一些以前存储在system表空间中的内容存储到了sysaux表空间中。
(1)查询已存在的表空间:
select tablespace_name,contents from dba_tablespaces;
(2)修改lzm账户的默认、临时表空间
alter user lzm
default tablespace users
temporary tablespace temp;
6.表空间配额:如果创建了一个用户lzm,并且为该用户账户赋予了连接数据库、创建表的权限,但是没有为其赋予sysaux表空间中占用空间的权 限,用此用户创建表操作会出现ora-01950错误。为了允许lzm账户可以创建表,可以使用alter user命令为该账户赋予sysaux表空间中的配额 。然后,重新以lzm身份连接数据库,并且执行创建表的操作。
conn system/system
alter user lzm default tablespace sysaux quota 10M on sysaux;
grant create session,create table to lzm;
7.删除用户:如果删除的用户下拥有对象,则需要带上cascade关键字。
drop user lzm;
drop user lzm cascade;
8.为了查看用户的oracle数据库中可以使用的独特系统权限集合,可以查看dba_sys_privs数据库视图。
select * from dba_sys_privs;
9.常用的系统权限:
create session:连接到数据库上
create sequencce:创建序列。序列是一系列数字,通常用来自动填充主键列
create synonym:创建同义词。同义词用于引用其他模式中的表
create table:创建表
create any table:在任何模式中创建表
drop table:删除表
drop any table:删除任何模式中的表
create procedure:执行任何模式中的存储过程
execute any procedure:执行任何模式中的存储过程
create user:创建用户
drop user:删除用户
create view:创建视图
10.向用户赋予/收回系统权限:grant system_privilege to username [with admin option];revoke system_privilege from username;
11.系统权限会控制对oracle数据库中各种系统级功能的访问,而对象权限可以用来控制对指定数据库对象的访问。可以说,系统权限可以用来许 可或限制DDL语句的执行,而对象权限可以用来许可或阻止DML语句执行。
select,insert,update,delete,execute,index,references,alter(只能应用于表和序列)
grant object_privilege on object_name to username [with grant option];
revoke object_privilege on object_name from username;
12.当数据库角色创建之后,其功能与实际的数据库用户类似,也就是说,为角色赋予权限与为用户赋予权限使用的grant语句大体相同,取消数 据库角色的权限与revoke语句也大致相同。也可以创建带有口令的角色。
create role role_name;
create role role_name identified by role_password;
conn system/system
grant create role to lzm;
conn lzm/lzm
create role role_lzm;
grant select,update,insert on mytable to role_lzm;
13.当定义完角色后,可以使用如下的语法格式将其赋予其他用户或角色:
grant role_name to user [with admin option]
grant role_name to role_name [with admin option]
conn lzm/lzm
grant role_lzm to lzm_1;
14.connect和resource都是oracle系统的内置角色,它们都具有一些预定的系统权限。可以通过role_sys_privs视图查看拥有系统权限的角色信 息。如果需要查看拥有对象权限的角色信息,可以使用role_tab__privs视图。drop role删除角色。
(1)不能是保留字
(2)必须1-30个字符
(3)必须以数据库字符集中的字母字符开头
(4)只能包含数据库字符集中的字母字符,以及:#、$、_
(5)不能包括单引号或双引号
2.在实际应用中,用户应该避免使用sys,system,scott等账户,应该建立自己的用户账户。
connect system/system
create user lzm identified by lzm;
grant create session,dba to lzm;
create session是一个系统权限,可以为用户提供连接数据库的能力。
3.重置密码(密码不能只是数字):任何用户都有能力修改自己账户的密码,系统管理员有能力重置其他用户的账户。
alter user lzm identified by lll;
4.锁定/解除账户:(必须具有解除账户权限的用户账户才能执行解除锁操作)
alter user lzm account lock;
alter user lzm account unlock;
5.oracle 10g有一个与以往版本不同的特点,在默认情况下,一些以前存储在system表空间中的内容存储到了sysaux表空间中。
(1)查询已存在的表空间:
select tablespace_name,contents from dba_tablespaces;
(2)修改lzm账户的默认、临时表空间
alter user lzm
default tablespace users
temporary tablespace temp;
6.表空间配额:如果创建了一个用户lzm,并且为该用户账户赋予了连接数据库、创建表的权限,但是没有为其赋予sysaux表空间中占用空间的权 限,用此用户创建表操作会出现ora-01950错误。为了允许lzm账户可以创建表,可以使用alter user命令为该账户赋予sysaux表空间中的配额 。然后,重新以lzm身份连接数据库,并且执行创建表的操作。
conn system/system
alter user lzm default tablespace sysaux quota 10M on sysaux;
grant create session,create table to lzm;
7.删除用户:如果删除的用户下拥有对象,则需要带上cascade关键字。
drop user lzm;
drop user lzm cascade;
8.为了查看用户的oracle数据库中可以使用的独特系统权限集合,可以查看dba_sys_privs数据库视图。
select * from dba_sys_privs;
9.常用的系统权限:
create session:连接到数据库上
create sequencce:创建序列。序列是一系列数字,通常用来自动填充主键列
create synonym:创建同义词。同义词用于引用其他模式中的表
create table:创建表
create any table:在任何模式中创建表
drop table:删除表
drop any table:删除任何模式中的表
create procedure:执行任何模式中的存储过程
execute any procedure:执行任何模式中的存储过程
create user:创建用户
drop user:删除用户
create view:创建视图
10.向用户赋予/收回系统权限:grant system_privilege to username [with admin option];revoke system_privilege from username;
11.系统权限会控制对oracle数据库中各种系统级功能的访问,而对象权限可以用来控制对指定数据库对象的访问。可以说,系统权限可以用来许 可或限制DDL语句的执行,而对象权限可以用来许可或阻止DML语句执行。
select,insert,update,delete,execute,index,references,alter(只能应用于表和序列)
grant object_privilege on object_name to username [with grant option];
revoke object_privilege on object_name from username;
12.当数据库角色创建之后,其功能与实际的数据库用户类似,也就是说,为角色赋予权限与为用户赋予权限使用的grant语句大体相同,取消数 据库角色的权限与revoke语句也大致相同。也可以创建带有口令的角色。
create role role_name;
create role role_name identified by role_password;
conn system/system
grant create role to lzm;
conn lzm/lzm
create role role_lzm;
grant select,update,insert on mytable to role_lzm;
13.当定义完角色后,可以使用如下的语法格式将其赋予其他用户或角色:
grant role_name to user [with admin option]
grant role_name to role_name [with admin option]
conn lzm/lzm
grant role_lzm to lzm_1;
14.connect和resource都是oracle系统的内置角色,它们都具有一些预定的系统权限。可以通过role_sys_privs视图查看拥有系统权限的角色信 息。如果需要查看拥有对象权限的角色信息,可以使用role_tab__privs视图。drop role删除角色。
15.select * from session_roles:查询当前用户拥有的所有权限。
16.with admin option 用于系统权限授权,with grant option 用于对象授权。
(1)给一个用户授予系统权限带上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.
(2)而with grant option用于对象授权时,被授予的用户也可把此对象权限授予其他用户或角色,不同的是但管理员收回用with grant option授权的用户对象权限时,权限会因传播而失效,如grant select on table with grant option to A,A用户把此权限授予B,但管理员 收回A的权限时,B的权限也会失效,但管理员不可以直接收回B的SELECT ON TABLE 权限。