3.4用户管理(了解)
在Oracle中可以对用户进行建立及授权操作
创建用户语法
CREATE USER 用户名 IDENTIFIED BY 密码
范例:创建一个test 用户 密码为test123
CREATE USER test IDENTIFIED BY test123
如果要想创建用户,则首先应该使用管理员进行登录
创建用户之后,开启一个新的sqlplus窗口,并使用此用户登录,出现以下错误提示:
ERROR:
ORA-01045: user TEST lacks CREATE SESSION privilege; logon denied
提示test用户没有创建Session的操作权限,没有Session的权限就意味着无法登录
如果要为用户授权可以使用如下的格式:
GRANT 权限1,权限2,...TO USER
范例:将创建Session的权限给test用户;
GRANT CREATE SESSION TO test;
之后再使用test用户进行连接,就可以连接上数据库,就表示创建了一个SESSION
用户连接上数据库后,我们进行建表的操作
范例:在test用户下创建一个表
CREATE TABLE tab(
id NUMBER PRIMARY KEY NOT NULL,
name VARCHAR2(30)
);
发现权限不足
实际上一个新的用户的所有权限都要被赋予,如果现在假设要想把多个权限赋予一个
用户则可以将这些权限定义成一组角色
在Oracle中提供了两个主要角色,CONNECT、RESOURCE
切换到sys超级管理员用户conn sys/change_on_install as sysdba;
GRANT CONNECT,RESOURCE TO test;
授权成功后我们再运行建表语句
CREATE TABLE tab(
id NUMBER PRIMARY KEY NOT NULL,
name VARCHAR2(30)
);
表可创建
突然,有一天test管理员的密码忘记了,此时sys可以修改用户的密码
ALTER USER 用户名 IDENTIFIED BY 密码
范例:将test用户密码修改为hello
ALTER USER test IDENTIFIED BY hello;
在一般的系统中存在,在用户第一次登录的时候可以修改密码,所以要想完成
此功能,可以手工让一个密码失效:格式如下:
ALTER USER 用户名 PASSWORD EXPIRE;
范例;
让test用户的密码失效(在sys用户下操作)
ALTER USER test PASSWORD EXPIRE;
再通过conn test/hello连接数据库时候 提示让输入新的密码
可以使用如下的命令锁住一个用户:
ALTER USER 用户名 ACCOUNT LOCK;
范例:将test 用户锁住
ALTER USER test ACCOUNT LOCK;
再连接test用户的时候 提示 您不能再连接到Oracle
此时如果要为一个用户解锁,使用UNLOCK即可
ALTER USER 用户名 ACCOUNT UNLOCK;
范例:将test用户解锁
ALTER USER test ACCOUNT UNLOCK;
现在如果使用test用户去访问scott下的表是否可以?
SELECT * FROM scott.emp;
错误信息:该表根本不存在,
如果说现在假设想访问其他用户的表,则需要授予此表的访问权限
范例:将scott用户下的表emp表的查询和删除权限给test用户
GRANT SELECT,DELETE ON scott.emp TO test;
既然可以将权限授予用户,那么也可以将权限回收,回收权限使用REVOKE语法
此语法如下:
范例:回收test用户的SELECT、DELETE 权限
REVOKE SELECT DELETE ON scott.emp FROM test;
3.5数据库的备份与恢复(了解)
数据库在运行的期间都是需要不断的进行备份的,万一系统崩溃,可以从备份
中恢复数据,
Oracle 安装完成之后 可以使用2个命令进行数据的备份和恢复
数据库备份:exp
数据库恢复:imp
在D盘新建一个文件夹data,在此文件夹中保存所有的备份文件,如果要备份,则需要使用
命令行方式,进入d:/data文件夹中敲入exp
备份完成之后,为了检验备份的效果 我们将数据库中的表全部删除
然后再使用imp命令导入数据