oracle学习笔记(1)
解决账户锁定问题:
以sys as sysdba登录,执行alter user username account unlock;(username为锁定的账户名)。然后以scott,tiger登录,
弹出密码修改框,修改密码。然后再重新登录即可。
oracle常用命令(在command window下操作)
conn: conn 用户名/密码@网络服务名 [as sysdba/sysoper]
查询当前用户:show user;
passw:修改密码
exit:断开连接并断开
spool命令。
Desc 表名:查看表结构。
创建新用户(必须以dba身份登录才可以):create user 用户名 identified by 密码 (密码必须以字母开头) 新创建的用户没有
任何权限,连数据库都不能登录,需要为其赋予权限。
修改密码:passw 用户名;
删除用户:drop user 【cascade】(该用户创建的表也相应删除)
赋予权限:grant 权限/角色 to 用户名 例:grant connect to newUser;把连接数据库的权限交给新用户。
Grant select/insert/delete/update/all on emp to newUser; 执行该操作的用户有sys,system和emp表所属的用户。All表示把上面的前四种权限都赋予新用户。新用户查询emp表必须如下执行:select * from scott.emp; 必须带有scott,否则系统以为是查询newUser的emp表。
收回权限:revoke select on emp from newUser; 谁授权谁收回,如果是scott授权,即使是sys也无权收回,只能由scott收回。
对象权限:
Grant select on emp to newUser with grant option;如果带有with grant option则表示scott允许newUser用户把查询表权限继续授权给别人。
例:grant select on scott.emp to newUser2;
系统权限:
with admin option;
问题:如果scott把newUser的权限收回了,那么newUser2是否还拥有这种权限?
答案:没有
比较重要的角色:connect,dba,resource
把resource赋予新用户后,用户才可以在表空间建表。
多理解一下权限(系统权限和对象权限)和角色(自定义角色和预定义角色)。一个角色身上可以有多种权限,oracle里有140多种权限
当电脑上装有一个本地数据库和一个连接远程数据库的客户端时,每次登录时要对应相应的oracle主目录,否则连接时出现如下错误:监听程序无法解析指定的连接字符串。更改主目录的方法为:tools->preferences->oracle->connection 在oracle Home选项上选择相应的主目录。