用户和权限一、用户介绍ORACLE用户是学习ORACLE数据库中的基础知识,Oracle数据库中默认为我们提供了30个用户,我们可以通过all_users进行查询,下面就介绍下类系统常用的默认ORACLE用户:1.sys用户:超级用户,完全是个SYSDBA(管理数据库的人)。拥有dba,sysdba,sysoper等角色或权限。是oracle权限最高的用户,登录时不能用normal。2.system用户:超级用户,默认是SYSOPEER(操作数据库的人),不过它也能以SYSDBA的权限登陆。拥有普通dba角色权限。3.scott用户:是个演示用户,是让你学习Oracle用的。二、常用命令学习oracle,首先我们必须要掌握常用的基本命令,oracle中的命令比较多,常用的命令如下:1.登录命令(sqlplus)说明:用于登录到oracle数据库用法:sqlplus用户名/密码[assysdba]注意:当用特权用户登录时,必须带上sysdba例子:普通用户登录sys用户登录操作系统的身份登录2.连接命令(conn)说明:用于连接到oracle数据库,也可实现用户的切换用法:conn用户名/密码[assysdba/sysoper]注意:当用特权用户连接时,必须带上sysdba或sysoper例子:3.断开连接(disc)说明:断开与当前数据库的连接用法:disc4.显示用户名(showuser)说明:显示当前用户名用法:showuser5.退出(exit)说明:断开与当前数据库的连接并会退出用法:exit6.编辑脚本(edit/ed)说明:编辑指定或缓冲区的sql脚本用法:edit[文件名]列子:7.运行脚本(start/@)说明:运行指定的sql脚本用法:start/@文件名列子:8.印刷屏幕(spool)说明:将sql*plus屏幕中的内容输出到指定的文件用法:开始印刷-spool文件名结束印刷-spooloff列子:文件内容9.显示宽度(linesize)说明:设置显示行的宽度,默认是80个字符用法:setlinesize12010.显示页数(pagesize)说明:设置每页显示的行数,默认是11行用法:setpagesize20三、用户管理1.创建用户说明:Oracle中需要创建用户一定是要具有dba(数据库管理员)权限的用户才能创建,而且创建的新用户不具备任何权限,连登录都不可以。用法:createuser新用户名identifiedby密码[defaulttablespace(表空间)][temporarytablespace(临时表空间)][profile(资源文件名)][quota(空间大小,单位M)on(表空间)];例子:解析:上面案例创建了普通用户zs,密码为123456,没有指定用户所属表空间,资源文件和临时文件同时因为没有指定quota【空间配额】,zs用户将不能在相应表空间建立数据对象,在Oracle11G中,普通用户默认表空间为Users,临时表空间为temp.资源文件默认使用default。表空间:表空间是数据库中最大的逻辑单位,一个Oracle数据库至少包含一个表空间,就是名为SYSTEM的系统表空间,一个用户只属于一个表空间,默认Users。临时表空间:临时表空间主要用于orderby语句的排序以及其他一些中间操作如读取数据时临时存储空间,Oracle从9i开始,临时表空间通用temp。用户资源文件:用户资源文件用来对用户的资源存取进行限制,包括CPU资源的使用,密码的使用策略等,默认Default。管理表空间查看表空间【dba,sys,v$开头的对象要以dba身份访问】select*fromv$tablespace;【查看系统当前拥有的表空间】selectusername,default_tablespacefromuser_users;【查询当前用户所属表空间】创建表空间createtablespacemyspacedatafile'D:\oracle11g\oradata\orcl\myspace.dbf'size32mautoextendonnext32mmaxsize1024m说明:创建表空间,名称为myspace,数据文件存放在datafile指定目录中,表空间默认32m,也许自动扩展,每次扩展32m,最大扩展到1024m删除表空间--删除表空间及空间文件droptablespacemyspaceincludingcontentsanddatafiles;管理资源文件查看资源文件select*fromdba_profileswhereprofile='资源文件名'创建资源文件--创建用户资源文件【一个用户可以同时构建3个会话,密码如果错误3次,永远锁定】createprofilemyfilelimitsessions_per_user3failed_login_attempts3password_lock_timeunlimited;说明:创建一个用户资源文件,文件名为myfile,支持该用户同时并发访问量为3,密码输入如果错误3次,永久锁定【dba可以解锁】,更多资源设置和密码策略见文档最下面;删除资源文件Dropporfile资源文件名创建用户案例二createusermysaidentifiedby123456defaulttablespacemyspaceprofilemyfilequota500monmyspace;说明:创建用户mysa,密码为123456,默认表空间为myspace,默认用户资源文件为myfile,为用户mysa在myspace空间分配500m配额2.修改密码说明:修改用户密码一般有两种方式,一种是通过命令password修改,另一种是通过语句alteruser实现,如果要修改他人的密码,必须要具有相关的权限才可以用法:方式一password[用户名]方式二alertuser用户名identifiedby新密码例子:修改当前用户(方式一)修改当前用户(方式二)修改其他用户(方式一)修改其他用户(方式二)3.用户禁用与启用说明:Oracle中想要禁用或启用一个账户也同样是使用alteruser命令来完成,只是语法和修改密码有所不同。用法:禁用alteruser用户名accountlock启用alteruser用户名accountunlock4.删除用户说明:Oracle中要删除一个用户,必须要具有dba的权限。而且不能删除当前用户,如果删除的用户有数据对象,那么必须加上关键字cascade。用法:dropuser用户名[cascade]四、用户权限与角色1.权限Oracle中权限主要分为两种,系统权限和实体权限。系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而言)。授予系统权限查看ORACLE所有系统权限select*fromsystem_privilege_map说明:要实现授予系统权限只能由DBA用户授出。用法:grant系统权限1[,系统权限2]…to用户名1[,用户名2]…[WITHADMINOPTION];例子:系统权限回收:说明:系统权限只能由DBA用户回收用法:revoke系统权限from用户名例子:实体权限【对象权限】:某种权限用户对其它用户的表或视图的存取权限。(是针对表或视图而言的)。主要包括select,update,insert,alter,index,delete,all其中all包括所有权限。权限系统权限createdropalter实体[对象]权限SELECTUPDATEALTERINSERTINDEXALL授予实体权限用法:grant实体权限1[,实体权限2]…on表名to用户名1[,用户名2]…[WITHGRANTOPTION];例子:实体权限回收用法:revoke实体权限on表名from用户名例子:查询用户拥有哪里权限:【用户都能使用】SQLselect*fromuser_tab_privs;//查询授予用户的对象权限SQLselect*fromuser_role_privs;//查询授予用户的角色权限SQLselect*fromuser_sys_privs;//查询授予用户的系统权限SQLSelect*fromsession_privs;//查询当前用户所拥有的权限查看全部用户拥有权限:【dba身份访问】SQLselect*fromdba_tab_privs;//查询授予全部用户的对象权限SQLselect*fromdba_role_privs;//查询授予全部用户的角色权限SQLselect*fromdba_sys_privs;//查询授予全部用户的系统权限2.角色角色。角色是一组权限的集合,将角色赋给一个用户,这个用户就拥有了这个角色中的所有权限。角色预定义角色自定义角色系统预定义角色预定义角色是在数据库安装后,系统自动创建的一些常用的角色。下面我们就简单介绍些系统角色:DBA:拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。注意:对于普通用户:授予connect,resource权限。对于DBA管理用户:授予connect,resource,dba权限。CONNECT,RESOURCE,DBA这些预定义角色主要是为了向后兼容。其主要是用于数据库管理。oracle建议用户自己设计数据库管理和安全的权限规划,而不要简单的使用这些预定角色。将来的版本中这些角色可能不会作为预定义角色。DELETE_CATALOG_ROLE,EXECUTE_CATALOG_ROLE,SELECT_CATALOG_ROLE这些角色主要用于访问数据字典视图和包。EXP_FULL_DATABASE,IMP_FULL_DATABASE这两个角色用于数据导入导出工具的使用。自定义角色Oracle建议我们自定义自己的角色,使我们更加灵活方便去管理用户创建角色SQLcreateroleadmin;授权给角色SQLgrantconnect,resourcetoadmin[WITHADMINOPTION];SQLgrantselect,inserton表名toadmin[WITHGRANTOPTION]将角色赋予用户SQLGRANTadminto用户[WITHADMINOPTION]SQLGRANTrole_nameTOrole_name[WITHADMINOPTION]撤销角色的权限SQLrevokeconnectfromadmin;删除角色SQLdroproleadmin;阅读材料/*Password_parameter参数部分【密码认证】---------------------------------------------------------Password_life_time:指定同一密码所允许使用的天数。如果同时指定了password_grace_time参数,如果在gracetime内没有改变密码,则密码会失效,连接数据库被拒绝。如果没有设置password_grace_time参数,默认值unlimited将引发一个数据库警告,但是允许用户继续连接。Password_reuse_time和password_reuse_max:这两个参数必须互相关联设置,password_reuse_time指定了密码不能重用前的天数,而password_reuse_max则指定了当前密码被重用之前密码改变的次数。两个参数都必须被设置为整数。Password_lock_time:指定登陆尝试失败次数到达后帐户的锁定时间,以天为单位。Password_grace_time:指定宽限天数,数据库发出警告到登陆失效前的天数。如果数据