oracle笔记


---小技巧:
sqlplus 中清屏命令:host cls

set linesize 400  ---设置列宽度

---启动监听
lsnrctl start

---启动数据库实例
oradim -starup -sid taink

---创建/删除用户
create user lisi identified by lisi;
drop user lisi;

---授权/撤销创建会话的权限
grant create session to lisi;
---grant create session to public;  (授权创建会话权限给所有用户)
revoke create session from lisi;
---revoke create session from public;(从所有用户撤销创建会话权限)

---授权创建表的权限
grant create table to lisi;
---grant alter any table to lisi;  ---授权修改任意表的权限

revoke create table from lisi;


---授权创建不受限制表空间的权限
grant unlimited tablespace to lisi;
revoke unlimited tablespace from lisi;

/* 查看当前用户的系统权限 */
select * from user_sys_privs;   ---数据字典

/* 查看当前用户的对象权限 */
select * from user_tab_privs;   ---数据字典
/* 对列进行授权,再进行对象权限查询时使用下列方式查询 */
select * from user_col_privs;   ---数据字典

/* 查看当前系统所有用户 */
select * from all_users;


------------------------------------------------------
/* 对象权限 */
---查询(当前用户)拥有的表的信息
select * from user_tables;

---授权/撤消 (对mytable表的)查询权限给san 用户


grant select on mytable to san;
---grant select,insert,update,delete on mytable to san;
---grant all on mytable to san;

revoke select on mytable from san;
---revoke select,insert,update,delete on mytable from san;
---revoke all on mytable from san;

---授权权限可以控制到列(注意:查询和删除 不能控制到列)
grant update(name) on mytable to san;        --- 授权只能更新表中的name 列的信息
grant insert(id) on mytable to san;        --- 授权只能插入表中的id 列的信息


------------------------------------------------------
---表的创建
create table tab_name (id int);
alter table tab_name add column_name varchar2(10);


-------------------------------------------------------
/* 系统权限和对象权限以及权限的传递 */
/*
    系统权限部分.
    系统权限具有传递性
    即:A ---grant---> B ---grant--->C
    当A ---revoke--->B 时,B ---grant--->C (的权限)没有撤消.
*/
grant alter any table to lisi;--- 基本的授权
grant alter any table to lisi with admin option; ---带管理权限的授权

/*
    对象权限部分
    对象权限不具有传递性
    即:A ---grant---> B ---grant--->C
    当A ---revoke--->B 时,B ---grant--->C (的权限)同时撤消
*/

grant select on tab to lisi;    ---基本授权查询表的权限
grant select on tab to lisi with grant option; ---(带授权选项的)授权

---------------------------------------------------------------
/*
    通过角色来管理用户
    角色:是权限的集合
*/
---创建role
create role myrole;
---给role 授权
grant create session,create table to myrole;
---把角色myrole 的权限授予用户zhang(用户zhang 拥有了create session,create table 权限了)
grant myrole to zhang;

---删除role
drop role myrole;

注意:当删除一个角色后,用户对应的权限也被撤消.
有些权限是不能赋予给角色:unlimited tablaspace

    creata table    ---只能为自己创建表
    create any table    ---不仅可以为自己创建表,也可为其它用户创建表
    alter table    /*无此类权限的设置,因为有创建权限也就有修改权限*/
    alter any table
    drop table     /*无此类权限的设置,因为有创建权限也就有删除权限*/
    drop any table

    表属于某一个用户.
    角色不属于某一个用户.

---------------------------------------------------------------
管理员密码丢失:
1.修改普通用户密码
alter user scott identified by tiger;

2.重新生成管理员密码:orapwd 命令:
C:\>orapwd
Usage: orapwd file=<fname> password=<password> entries=<users> force=<y/n>

  where
    file - name of password file (mand),
    password - password for SYS (mand),
    entries - maximum number of distinct DBA and     force - whether to overwrite existing file (opt),OPERs (opt),
  There are no spaces around the equal-to (=) character.

  demo:
  C:\>orapwd file=D:\oracle\product\10.2.0\db_1\database\PWDtaink.ora password=123456 entries=10

//查询密码文件中(PWDtaink.ora)存在多少特权用户
select * from v$pwfile_users;


---------------------------------------------------------------
Oracle 三种验证机制:
1.操作系统验证
2.密码文件验证
3.数据库验证

linux  下oracle 的启动过程:
    lsnrctl start
    sqlplus sys/pwd as sysdba// 早期版本写法:sqlplus /nolog conn sys/pwd as sysdba
    startup

windows 下oracle 的启动过程:
    lsnrctl start
    oradim -starup -sid orcl

---------------------------------------------
/* 用户的创建 */

create user usertemp        ---创建用户
identified by usertemp        ---设置密码
default tablespace users    ---设置默认的表空间
temporary tablespace temp    ---设置临时的表空间
quota 50M on users        ---设置默认表空间限额为50M

---------------------------------------------
/* 限制用户 */
---用户加锁
alter user user_name account lock;

---用户解锁
alter user user_name account unlock;

---用户口令即刻失效
alter user user_name password expire

你可能感兴趣的:(oracle,C++,c,linux,C#)