ITPub博客

首页 > 数据库 > Oracle > oracle朝花夕拾01 用户管理

oracle朝花夕拾01 用户管理

Oracle 作者:善待别人 时间:2013-08-19 09:38:00 0 删除 编辑
SQL> --清屏有两种方式:host cls和clear screen
SQL> host cls;

SQL> --&:可以替代查询语句中用到的变量,但是该变量在执行时,需要用户输入
SQL> select * from emp where job='&job';
输入 job 的值:  MANAGER
原值    1: select * from emp where job='&job'
新值    1: select * from emp where job='MANAGER'

     EMPNO ENAME                JOB                       MGR HIREDATE          
---------- -------------------- ------------------ ---------- --------------    
       SAL       COMM     DEPTNO                                                
---------- ---------- ----------                                                
      7566 JONES                MANAGER                  7839 02-4月 -81        
      2975                    20                                                
                                                                                
      7698 BLAKE                MANAGER                  7839 01-5月 -81        
      2850                    30                                                
                                                                                
      7782 CLARK                MANAGER                  7839 09-6月 -81        
      2450                    10                                                
                                                                                

SQL> --设置显示的行宽
SQL> set linesize 160;
SQL> --设置每页显示的行数目
SQL> set pagesize 30;
SQL> --用户管理,一般具有dba权限的用户才能进行用户操作,不然会提示权限不足
SQL> create user xiaoming identified by xm123;
create user xiaoming identified by xm123
                                   *
第 1 行出现错误: 
ORA-01031: 权限不足 


SQL> --切换到管理员
SQL> conn system/password as sysdba;
已连接。
SQL> create user xiaoming identified by xm123;

用户已创建。

SQL> --在oracle10中,用户的密码必须以字母开头,不然她不会创建用户,而且会报告错误
SQL> --新创建的用户是不能登陆的,因为新创建的用户没有任何权限
SQL> conn xiaoming/xm123;
ERROR:
ORA-01045: user XIAOMING lacks CREATE SESSION privilege; logon denied 


警告: 您不再连接到 ORACLE。
SQL> show user;
USER 为 ""
SQL> conn system/password as sysdba;
已连接。
SQL> --需要管理员给用户分配相应的权限,新创建的用户才能登陆
SQL> grant create session to xiaoming;

授权成功。

SQL> --创建用户的细节
SQL> create user xiaohong identified by xh123
  2  default tablespace users
  3  temporary tablespace temp
  4  quota 3m on users;

用户已创建。

SQL> --identified by 表明该用户将用数据库验证的方式验证
SQL> --default tablespace users表示用户的表空间在users上
SQL> --temporary tablespaces temp表示该用户的临时表创建在temp表空间
SQL> --quota 3m on users表明用户建立的数据对象(表,索引,视图,pl/sql块等等)最大只能是3m
SQL> --给用户授予登陆权限
SQL> grant connect to xiaohong;

授权成功。

SQL> --希望用户建立数据对象没有空间的限制
SQL> grant resource to xiaohong;

授权成功。

SQL> --给用户修改密码
SQL> password xiaohong;
更改 xiaohong 的口令
口令已更改
SQL> --如果没有dba的权限,则拥有alter user 的系统权限也可以
SQL> alter user xiaohong identified by xh123;

用户已更改。

SQL> --删除用户,一般用dba的身份去删除用户,如果其他用户想要删除用户则需要有drop user的权限drop user 用户名 [cascade],最后的参数是可选的,如果要删除的用户已经建立了数据表,那么在删除该用户的的时候需要在语句后边加上cascade参数
SQL> drop user xiaoming;

用户已删除。

SQL> --用户管理综合案例一:创建用户xiaoming,给他分配两个角色,可以让xiaoming登陆和创建表,并且可以操作自己创建的表,然后回收角色,删除该用户
SQL> --创建用户
SQL> create user xiaoming identified by xm123;

用户已创建。

SQL> --分配角色
SQL> grant connect to xiaoming;

授权成功。

SQL> grant resource to xiaoming;

授权成功。

SQL> --修改xiaoming密码
SQL> password xiaoming;
更改 xiaoming 的口令
口令已更改
SQL> --用xiaoming登陆
SQL> conn xiaoming/xm1234;
已连接。
SQL> --创建表
SQL> create table xm(id number);

表已创建。

SQL> --添加数据
SQL> insert into xm values(1);

已创建 1 行。

SQL> --查看表
SQL> select * from xm;

        ID                                                                                                                                                      
----------                                                                                                                                                      
         1                                                                                                                                                      

SQL> --使用system用户登陆,回收角色
SQL> conn system/password as sysdba;
已连接。
SQL> revoke connect from xiaoming;

撤销成功。

SQL> revoke resource from xiaoming;

撤销成功。

SQL> --删除用户
SQL> drop user xiaoming cascade;

用户已删除。

SQL> --方案:当一个用户创建好以后,如果该用户创建了任意一个数据对象,这时,dbms(Data Base Management System)就会创建一个方案与该用户对应,并且该方案的名字和用户名一致,如果该用户没有创建数据对象,dbms是不会为该用户创建方案的
SQL> --要求:让xiaohong可以查询scott用户的emp表
SQL> conn scott/password;
已连接。
SQL> grant select on emp to xiaohong;

授权成功。

SQL> --xiaohong要查询scott的emp表时,需要指定方案名,不然如果xiaohong的方案中有同名的表,查询的就是xiaohong的方案中的表
SQL> conn xiaohong/xh123;
已连接。
SQL> select * from scott.emp;

     EMPNO ENAME                JOB                       MGR HIREDATE              SAL       COMM     DEPTNO                                                   
---------- -------------------- ------------------ ---------- -------------- ---------- ---------- ----------                                                   
      7369 SMITH                CLERK                    7902 17-12月-80            800                    20                                                   
      7499 ALLEN                SALESMAN                 7698 20-2月 -81           1600        300         30                                                   
      7521 WARD                 SALESMAN                 7698 22-2月 -81           1250        500         30                                                   
      7566 JONES                MANAGER                  7839 02-4月 -81           2975                    20                                                   
      7654 MARTIN               SALESMAN                 7698 28-9月 -81           1250       1400         30                                                   
      7698 BLAKE                MANAGER                  7839 01-5月 -81           2850                    30                                                   
      7782 CLARK                MANAGER                  7839 09-6月 -81           2450                    10                                                   
      7788 SCOTT                ANALYST                  7566 19-4月 -87           3000                    20                                                   
      7839 KING                 PRESIDENT                     17-11月-81           5000                    10                                                   
      7844 TURNER               SALESMAN                 7698 08-9月 -81           1500          0         30                                                   
      7876 ADAMS                CLERK                    7788 23-5月 -87           1100                    20                                                   
      7900 JAMES                CLERK                    7698 03-12月-81            950                    30                                                   
      7902 FORD                 ANALYST                  7566 03-12月-81           3000                    20                                                   
      7934 MILLER               CLERK                    7782 23-1月 -82           1300                    10                                                   

已选择14行。

SQL> --给用户赋权限的命令是grant,回收权限的命令是revoke
SQL> --权限分为系统权限和对象权限,系统权限是指用户对数据库相关的权限,对象权限是和用户操作数据对象相关的权限,其实我们所赋给用户的权限准确讲,不是权限,而是角色。
SQL> conn system/password as sysdba;
已连接。
SQL> create user xiaoming identified by xm123;

用户已创建。

SQL> --希望xiaoming可以吧权限继续赋给别人,如果是系统权限:
SQL> grant connect to xiaoming with admin option;

授权成功。

SQL> --如果是对象权限
SQL> conn scott/password;
已连接。
SQL> grant select on scott.emp to xiaoming with grant option;

授权成功。

SQL> conn xiaoming/xm123;
已连接。
SQL> --用xiaoming将对scott的emp的查询权限赋给xiaohong
SQL> grant select on scott.emp to xiaohong;

授权成功。

SQL> --此时如果scott吧xiaoming对emp表的查询权限回收,那么xiaohong也将失去该权限,也就是xiaohong被株连了
SQL> conn scott/password;
已连接。
SQL> revoke select on emp from xiaoming;

撤销成功。

SQL> conn xiaohong/xh123;
已连接。
SQL> select * from scott.emp;

     EMPNO ENAME                JOB                       MGR HIREDATE              SAL       COMM     DEPTNO                                                   
---------- -------------------- ------------------ ---------- -------------- ---------- ---------- ----------                                                   
      7369 SMITH                CLERK                    7902 17-12月-80            800                    20                                                   
      7499 ALLEN                SALESMAN                 7698 20-2月 -81           1600        300         30                                                   
      7521 WARD                 SALESMAN                 7698 22-2月 -81           1250        500         30                                                   
      7566 JONES                MANAGER                  7839 02-4月 -81           2975                    20                                                   
      7654 MARTIN               SALESMAN                 7698 28-9月 -81           1250       1400         30                                                   
      7698 BLAKE                MANAGER                  7839 01-5月 -81           2850                    30                                                   
      7782 CLARK                MANAGER                  7839 09-6月 -81           2450                    10                                                   
      7788 SCOTT                ANALYST                  7566 19-4月 -87           3000                    20                                                   
      7839 KING                 PRESIDENT                     17-11月-81           5000                    10                                                   
      7844 TURNER               SALESMAN                 7698 08-9月 -81           1500          0         30                                                   
      7876 ADAMS                CLERK                    7788 23-5月 -87           1100                    20                                                   
      7900 JAMES                CLERK                    7698 03-12月-81            950                    30                                                   
      7902 FORD                 ANALYST                  7566 03-12月-81           3000                    20                                                   
      7934 MILLER               CLERK                    7782 23-1月 -82           1300                    10                                                   

已选择14行。

SQL> --不对啊,出问题了,这个可能是oracle11g的更新吧,有待研究
SQL> conn xiaoming/xm123;
已连接。
SQL> select * from scott.emp;
select * from scott.emp
                    *
第 1 行出现错误: 
ORA-00942: 表或视图不存在 


SQL> --利用profile管理用户口令
SQL> --profile是口令限制,资源限制的命令集合,当建立数据库时,oracle会自动建立名称为defaule的profile,当建立用户没有指定profile选项,那么oracle就会将default分配给用户
SQL> --1.账户锁定:指定该用户登录时最多可以输入密码的次数,也可以指定用户锁定的时间(天),一般用dba的身份去执行该命令.
SQL> --基本语法:create profile 文件名 limit failed_login_attempts 输入密码的次数 password_lock_time 锁定天数;alter user 用户名 profile 文件名;
SQL> --例子:指定xiaoming这个用户最多只能尝试三次登陆,锁定时间为2天
SQL> --创建profile文件
SQL> conn system/password as sysdba;
已连接。
SQL> create profile lock_account limit failed_login_attempts 3 password_lock_time 2;

配置文件已创建

SQL> --执行文件
SQL> alter user xiaoming profile lock_account;

用户已更改。

SQL> --此时,xiaoming已经被设定登陆次数,如果xiaoming三次以内没有登陆成功,会报出ORA-28000:the account is locked错误
SQL> --2.给用户解锁
SQL> alter user xiaoming account unlock;

用户已更改。

SQL> --解锁是临时的,只是在被锁定的天数内该用户再次可以登陆,但是如果登陆错误次数再一次超过设定的锁定次数,该用户还是会被锁定
SQL> --3.终止口令:为了让用户定期修改密码可以使用终止口令来完成,同样这个命令也需要dba的身份完成
SQL> --终止口令语法:create profile 文件名 limit password_life_time 使用天数 password_grace_time 宽限天数 继续加限制条件;alter user 用户名 profile 文件名;
SQL> --例子:给xiaoming创建一个profile文件,要求他每隔十天就要修改一次自己的登陆密码,宽限期限为2天。
SQL> show user;
USER 为 "SYS"
SQL> create profile myprofile limit password_life_time 10 password_grace_time 2;

配置文件已创建

SQL> alter user xiaoming profile myprofile;

用户已更改。

SQL> --4.口令历史:如果希望用户在修改密码时,不能使用以前使用过的密码,可以使用口令历史,这样oracle就会将口令修改的信息存放到数据字典中,这样当用户修改密码时,oracle就会对新旧密码进行比较,当发现新旧密码一样时,就提示用户重新输入密码。
SQL> --例子:
SQL> conn system/password;
已连接。
SQL> show user;
USER 为 "SYSTEM"
SQL> --1.建立profile
SQL> create profile password_history limit password_life_time 10 password_grace_time
  2  password_reuse_time 10;

配置文件已创建

SQL> --password_reuse_time:指定口令可重用时间,即10天后就可以重新使用
SQL> --2.将profile分配给用户
SQL> alter user xiaoming profile password_history;

用户已更改。

SQL> --删除profile,当某个profile不再需要时,可以删除该文件,文件被删除后,用这个文件
的用户也会被释放
SQL> --语法:drop profile 文件名 [cascade];
SQL> --如果profile指定了用户,则删除时必须加cascade,不然会报错
SQL> drop profile password_history;
drop profile password_history
*
第 1 行出现错误:
ORA-02382: 概要文件 PASSWORD_HISTORY 指定了用户, 不能没有 CASCADE 而删除

SQL> drop profile password_history cascade;

配置文件已删除。

SQL> --加了cascade后,会把级联的相关东西也删除掉
SQL> drop profile lock_account cascade;

配置文件已删除。

SQL> drop profile myprofile cascade;

配置文件已删除。

SQL> spool off;
<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22602243/viewspace-1116162/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-09-26