导读
笔记内容来自韩顺平老师的视频《玩转Oracle实战教程》,可以结合笔记进行观看。第一天视频中还有Oracle的介绍和安装等内容,很容易搜索到,这里就不再进行总结。
目录
1、命令行工具SQLPlus的启动
2、sqlplus常用命令
3、文件操作命令(运行、编辑、输出文件)
4、用户管理(用户创建/删除、权限管理、口令管理)
一、命令行工具SQLPlus
SQLPlus是Oracle自带的命令行工具,初学者最好是先使用命令行工具进行操作。
SQLPlus的启动:
方法一:使用电脑上的SQLPlus的启动图标启动。
方法二:win + R 打开运行窗口输入“cmd”打开命令行窗口,输入:sqlplus [username/password][@server][as sysdba|sysoper];启动。其中username/password如果不输人,SQL*Plus会在后续提示输入。server是网络服务名,登录本机数据库暂不需要。as sysdba|sysoper分别表示以sysdba或sysoper特权用户登录。
二、SQLPlus常用命令
1、连接到数据库
语法:conn username/password [@server][as sysdba|sysoper];
说明:相当于用户登录
2、断开连接
语法:disc[onnect];
说明:disc是disconnect的缩写,该命令断开和oracle的连接但是不退出sqlplus窗口。
3、修改密码
语法:passw[ord];
说明:passw是password的缩写,该命令用于修改当前用户的密码。ps:如果需要修改其他用户的密码,需要使用sys/system账户登录。
4、显示当前用户名
语法:show user;
5、关闭窗口
语法:exit;
说明:exit命令断开和oracle的连接同时退出sqlplus窗口。
操作截图:
三、文件操作命令
1、运行文件
语法:start 文件位置;
说明:例如start d:a.sql;就能运行d盘下的a.sql文件。这里start可以用@代替。
2、编辑文件
语法:edit 文件位置;
说明:例如edit d:a.sql;就能使用记事本打开a.sql文件。
3、输出文件
语法:spool 文件位置;......;spool off;
说明:将sqlplus屏幕中spool 文件位置;spool out;两个语句之间的内容输入到指定文件中。
四、用户管理
1、创建用户(dba)
语法:create user *** identified by ***;
说明:这里dba是指需要数据管理员身份才能进行权限操作,如system等管理员用户才能创建新用户。***处分别填写要创建的用户和密码。ps:新创建的用户没有任何权限。
2、删除用户(dba)
语法:drop user *** [cascade];
说明:权限操作,如果该用户下有表格,删除用户是需要带上cascade关键字。
3、权限管理
1)相关概念
权限:Oracle中用户的很多操作都是需要权限的,Oracle中的权限可以分为系统权限(用户对数据库相关操作的权限)和对象权限(用户对其他用户的数据对象如表格、视图、触发器等进行操作的权限)。
角色:我们一般不直接将权限赋予给用户,而是将角色赋予给用户,不同的角色携带不同的权限,由此用户就得到了角色拥有的权限。而角色又分为预定义角色和自定义角色。
2)赋予/撤销权限grant to /revoke from
通过角色赋予权限
语法:grant 角色名 to 用户名;
说明:比如新创建的用户tom是没有登录权限的,执行语句“grant connect to tom;”就是赋予tom这个用户一个connect的角色,然后用户tom就具有了连接数据库的权限。
用户赋予表格操作权限
语法:grant 权限 on 表格 to 用户名;
说明:比如用户tom是没有访问用户scott的emp表权限的,所以我们需要登录scott用户,并执行“grant select on emp to tom;”语句,这时用户tom就有了访问scott.emp的权限。ps:其他权限如delete、update、insert、all等。
撤销用户赋予的表格操作权限
语法:revoke 权限 on 表格 from 用户名;
说明:和grant to类似改为revoke from就是权限撤销。
权限传递
我们希望赋予的权限能够“传递”,比如scott执行了语句“grant select on emp to tom;”就是赋予tom访问emp表的权限,我们希望通过tom也能赋予其他用户这个权限,那么scott需要执行语句“grant select on emp to tom with grant option;”。(相当于scott有一把小刀,并且scoot给了tom使用小刀的权利,并且,scott赋予了tom把这把刀给其他人用的权利)。
语法:赋予系统权限的语句 + admin option;
赋予对象权限的语句 + grant option;
说明:需要注意的是,比如scott赋予了tom操作emp表并且能传递这个权限的权利,tom将操作scott.emp这个权限赋予给了用户lucy,当scott撤销tom操作emp表权利时,lucy也不再具有该权限。相当于“级联撤销”。
4、用户口令管理profile
profile是口令限制,使用profile关键字可以管理用户口令。
1)账户锁定
语法:create profile *** limit failed_login_attemps m password_lock_time n;
alert user 用户名 profile ***;
说明:第一句是创建一个名为***的口令限制profile,第二句是设置用户的口令限制为***:即当用户错误输入口令m次后该账户将会锁定n天。
2)账户解锁(dba)
语法:alert user 用户名 account unlock;
说明:当某用户被锁定时可以使用dba用户进行解锁。
3)终止口令
语法:create profile *** limit password_life_time m password_grace_time n;
alert user 用户名 profile ***;
说明:创建一个终止口令profile并修改为某用户的profile,即设置该用户的口令生命周期为m天,即需要每m天修改一次口令,宽限n天。
4)历史口令
语法:create profile *** limit password_life_time m password_grace_time n password_reuse_time z;
alert user 用户名 profile ***;
说明:在终止口令语句后加password_reuse_time z就可以让用户不使用z天内的历史口令,即z天后历史口令又可以继续使用。
5)删除profile
语法:drop profile *** [cascade];
说明:当不需要某个profile时可以将其删除,cascade是进行级联删除。