oracle用户管理

oracle用户管理

给DBMS系统用户解锁:
1.先用system用户登录
2.解锁用户命令的基本语法:
ALTER USER 用户名 ACCOUNT UNLOCK;

一、sqlplus常用命令
1.show user:显示当前连接的用户名
2.connect:登录连接,而且还可以切换不同的用户登录
3.disconnect:断开连接,但并不退出sqlplus窗口
4.password:修改用户密码,前提是必须拥有高级用户的权限(system/sys)
修改自己的密码可以省去用户名。
忘记密码后,重置密码:
alter user 用户名 identified by 新密码;
5.exit:退出当前用户并且关闭sqlplus窗口
6.linesize:用于控制每行显示多少个字符,默认显示80个字符
用法:set linesize 字符
7.pagesize:用于控制每页显示多少行,默认显示14行
用法:set pagesize 每页显示的行数
二、oracel用户管理
需求:假设你是oracle管理员,当你一个同事入职,你需要为他分配一个帐号。
创建用户:(需要具有DBA管理权限)
语法:create user 用户名 identified by 密码;(密码不能以数字开头)
为什么刚创建好的用户无法正常登录?
这是因为oracle刚刚创建的用户是没有任何权限的,需要管理员给用户分配 相应的权限才能正常登录。

                                    如何给用户分配权限呢?
                                                    基本语法:grant 权限/角色 to 用户名;
                                                    举例说明:如给一个刚刚创建好的用户一个正常登录的权限。
                                                                                        grant connect to scott;

            oracle用户管理机制

         create user xiaoming identified by m123;
                                             default tablespace users
                                             temporary tablespace temp
                                             quota 3m on users;(用户建立的数据对象(表、索引、视图、pl/sql块))最大只能是3m

综合案例:
        创建 一个用户xiaohong,然后给他分配两个角色,可以让xiaohong登录、创建表、操作(crud)自己创建表,然后回收角色,最后删除用户。
        1.使用system创建xiaohong
                        create user xiaohong identified by m123;
        2.给xiaohong分配两个常用的角色
                    grant connect to xiaohong;
                    grant resource to xiaohong;
        3.让xiaohong登录
                    connect xiaohong/m123
        4.给xiaohong修改密码
                    alter user xiaohong identified by m111;
        5.让xiaohong创建一张表
                    create table students(id,name);
        6.使用system登录,回收角色
                    connect system/oracle
                    revoke connect from xiaohong
                    revoke resource from xiaohong
        7.删除用户
                drop user xiaohong
                注意:当我们删除一个用户的时候,如果这个用户自己已经创建过数据对象,那么我们在删除用户的时候,需要加选项cascade,表示把这个用户删除的同时,也把该用户所创建的数据对象一并删除。

方案(schema)
理解:当一个用户创建好后,如果该用户创建了任意一个数据对象,这时我们的dbms会创建一个对应的方案与该用户对应,并且该方案的名字与用户名一致。

        小技巧:如果希望看到某个用户的方案究竟有什么数据对象,我们可用pl/sql developer去查看。

        方案的实际运用:
                需求:请完成一个功能,让xiaohong用户可以查看scott的emp表。
                                步骤如下:
                                                1.先用scott用户登录
                                                            connnect scott/tiger
                                                2.赋权限
                                                             grant select on emp to xiaohong;
                                                3.查看scott表名emp时,需要带对scott用户的方案名。
                                                                select * from scott.emp;

以下表空间、权限、角色的概念对以上实际运用作出叙述:
            表空间:
                        什么是表空间:表存在的空间,一个表空间是指向具体的的数据文件。

                            权限:
                                        系统权限:
                                                            系统权限是和数据库管理相关的权限:
                                                                            create session:登录到数据库实例权限
                                                                            create table:创建表权限
                                                                            create index:索引权限 
                                                                            create view:视图权限
                                                                            create sequence:序列权限
                                                                            create trriger:触发器权限
                                        对象权限:
                                                                select 
                                                                delete
                                                                update
                                                                insert

            角色:
                                    预定义角色:
                                                    把常用的权限集中起来,形成角色
                                                                    dba
                                                                    connect
                                                                    resource
                                    自定义角色:
                                                    自己去定义一个角色

三、**使用profile管理用户口令         **          
                                概述:profile是口令限制,资源限制的命令集合,当建立数据时,oracle会自动建立名称为default的profile,当建立用户没有指定profile选项,那么oracle会将default分配给用户。
                                1.账户锁定
                                            指该账户登录时最多可以输入密码的次数,也可以指定该账户锁定的时间(天)
                                         基本语法:
                                                         create profile 文件 limit failed_login_attempts 尝试密码次数  password_lock_time 锁定天数;
                                                         alter user 用户名 profile 文件;//分配用户profile文件
                        举例说明:
                                    指定scott账户最多只能尝试3次登录,锁定时间为2天。
                                    1.创建profile文件
                                    2.create profile myprofile limit  fialed_login_attempts 3 password_lock_time 2;
                                    3.alter user scott profile myprofile;
                        2.终止口令:
                                    需求:说一个账户密码最多10天,宽限期为2天,到时必须设置新的密码。
                                    基本语法:
                                            create profile myprofile limit password_life_time 10 password_grace_time 2;
                                            alter user scott profile myprofile;
                                            解锁:alter user scott account unlock;
                        3.口令历史:
                                        基本语法:
                                                        create profile 文件 limit  password_lfe_time 10 password_grace_time 2 password_reuse_time 1;
                                //password_reuse_time 1         :指定口令可重用时间为10天后需要修改。
                                alter user 用户名 profile 文件;
                        4.删除profile:
                                    drop profile  文件;

oracle 启动流程:
windows操作系统:
1.启动监听
在dos窗口下运行命令:lsnrctl start
2.启动数据库实例
oradim -startup -sid 数据库实例名

            unix/linux操作系统:
                    1.启动监听
                       lsnrctl start
                    2.以sysdba身份登录
                        sqlplus / as sysdba
                    3.登录进去执行:startup

oracle认证方式:
1.基于操作系统:
如果当前用户属于本地操作系统的ora_dba组,即可通过操作系统认证
2.基于oracle数据库:
2.1对于普通用户:
oracle默认使用数据库验证
2.2对于特权用户:
oracle默认使用操作系统认证,如果验证不通过,则再使用数据库验证。
2.3通过配置sqlnet.ora文件,可以修改oracle登录认证方式:
SQLNET.AUTHENTICATION_SERVICES=(NTS)是基于操作系统验证
SQLNET.AUTHENTICATION_SERVICES=(NONE)是基于oracle验证
SQLNET.AUTHENTICATION_SERVICES=(NTS,NONE)是二者共存

如何找回管理员用户丢失的密码?
恢复办法:把原有的密码文件删除,再生成一个新的密码文件。
步骤如下:
1.搜索名为(PWD数据库实例名).ora 文件
2.备份原来的密码文件,再删除原来的密码文件。
3.生成新的密码文件,在DOS窗口下输入命令:
orapwd file 原密码文件的全路径\密码文件名.ora password=新的密码(新的密码文件名要与原来的密码文件名一致)
4.如果希望新的密码生效,则重启数据库实例 。

猜你喜欢

转载自blog.51cto.com/1105337/2114747