--------- 登录 ---------
conn[ect] username/passowrd[@数据库名] [as sysdba/sysoper]; //如果默认只有一个数据库,可以不用[]内容;当用特权用户身份连接时,必须带上as sysdba或sysoper。
--------- 显示当前的用户名 ----------
show user;
--------- 修改当前用户的密码 ---------
passw; //修改密码,在pl/sql developer中无效
--------- 退出登录 ---------
exit; //退出登录
--------- 执行sql脚本文件 --------
start sql脚本文件路径;
或者
@sql脚本文件路径; //@后不留空格
--------- 打开脚本文件继续编辑 ------
edit sql脚本文件路径; //在pl/sql developer中无效
--------- 清屏 ------
clear; //在oracle sql*plus中无效
--------- 输出选项 ----------------
打开:set serveroutput on;
关闭:set serveroutput off;
--------- 显示操作时间 -----------
set timing on;
------- 将当前屏幕内容保存 -----------
spool 屏幕内容截取后保存的文件名; 其它操作... spool off;
------------- &name --------------------
select * from aaa_test where id=&name; //&name在弹出的输入框中输入域值替代此处的&name,如果是字符串型要用"&name"
------------- 设置行的字数,每页行数 --------------------
show/set linesize/pagesize;
------------ 创建用户 ------------
create user username identified by password;//创建带密码(密码不能以数字开头)的用户,需要管理员权限。注意,创建的用户是没有任何权限的,甚至连登陆数据库的权限也没有,需要为其制定相应的权限。给一个用户赋权限命令grant,回收权限用命令revoke。
------------ 删除用户 ------------
drop user username;//删除用户,注意,如果要删除的用户已经创建了表,那么在删除用户时要带参数cascade,表示删除该用户的表即用户本身。
------授权给用户--------
grant connect to username;//将connect角色给username
grant select on tablename to username;//将tablename表的select权限授权给username 然后可以,select * from 创建表的用户名.tablename;
------回收用户的权限------------
revoke select on tablename from username;//从username处收回对tablename表的select权限,操作者需要是该表的创建者。
注意:收回某用户权限会影响到已经传递出去的用户的权限
-------- 权限 -----------
Oracle中权限分两种:
1、系统权限:描述用户对数据库访问的相关权限;
2、对象权限:用户对其他用户的数据对象访问的权限(数据对象指表、视图、过程、函数、触发器等)。
对象权限简单分为几种:select/insert/update/delete/all(包括前面几种)/create index...
----------- 对权限的维护 ---------
某用户将其表的某种操作权限授予另一用户,并希望这个用户可以传递此权限给其他用户。
1、如果是对象权限,就在后面加with grant option; grant select on tablename to username with grant option;
2、如果是系统权限,就在后面加with admin option; grant connect to username with admin option;
注意:如果中间的某一个用户被回收了已经传递出去的权限,后来获得权限的用户也会被株连回收相应的权限。
-------------角色------------
Oracle中角色分两种:
1、预定义角色:安装时已经定义好的;
2、自定义角色。 常用重要角色:connect(可以连入数据库)/dba(数据库管理员)/resource(让用户在任何表空间建表),dba的权限包含了connect和resource。
--------profile 管理用户口令---------
** 账户锁定 **
制定一个用户登录时最多可以输入密码的次数,也可以制定用户锁定的时间(天),一般用dba身份去执行该命令。
1、先创建profile配置文件: create profile 自己定义的profile名字 limit failed_login_attempts 3 password_lock_time 2;//2代表天数
2、将配置文件赋给用户username: alter user username profile lock_account; **账户解锁** 解除用户username的账户锁定: alter user username account unlock;
** 终止口令 **
为了让用户定期修改密码可以使用终止口令的指令来完成,同样也需要dba身份来操作。
2天: create profile myprofile limit password_life_time 10 password_grace_time 2; alter user tea profile myprofile;
----------- 口令历史 --------
如果希望用户在修改密码时,不能使用以前使用过的密码,可以使用口令历史,这样oracle会将口令修改的信息存放到数据字典中,当用户修改密码时,oracle就会对新旧密码进行比较,的发现新旧密码一样时,就提示用户重新输入密码。
例:
1、create profile password_history limit password_life_time 10 password_grace_time 2 password_reuse_time 10;//password_reuse_time为指定口令可以重用即10天后可重用
2、alter user tea profile password_history;
----------- 删除profile -----
drop profile password_history [cascade];//删除profile后,以前被profile约束的用户都将自由。
----------- 查看表结构 ------
desc tablemame;
------------ 查看服务器端的字符集--------
select userenv('language') from dual;
注意:有时将汉字记录添加到数据库中会出现乱码,就需要在注册表中把本机的字符集编码改成和服务器一致。
注册表项为:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient10g_home4中的NLS_LSNG字段,点右键修改,将数值数据修改为与服务器端相同的字符集。