Oracle-04-用SQL*PLUS创建用户&新用户授权等

一、发现如之前所说的sqlplus sys/ as sysdba口令,对于sys用户可以随意输入密码都能连接数据库,比如“sqlplus sys/moon as sysdba”、“sqlplus sys/aaa as sysdba”等等都可以登录数据库

 

二、第一个SQL语句:select*from all_users;

连接上数据库后,在cmd窗口输入以上SQL语句,回车,发现列出当前数据库的所有用户公开信息(注意:语句末尾分号必须输入)。下图截取了部分用户:

Oracle-04-用SQL*PLUS创建用户&新用户授权等_第1张图片

图中虚线上一行是类名:USERNAME、USER_ID、CREATED。

 

三、在当前连接的数据库创建新用户的条件:

(1)必须是管理员权限才能创建用户(或者以管理员身份

给某个用户分配一个能创建用户的权限也可以);

(2)学会创建用户的命令(注意:末尾分号不能少):

语法:create user 用户名 identified by 密码;

示例:create user lisi identified by lisi;

演示:用以上SQL语句创建用户LISI成功,然后用select*from all_users;语句查看发现有新创建的LISI用户,尽量避免密码为纯数字,因为ORACLE可能不允许创建纯数字的密码,如下图:

Oracle-04-用SQL*PLUS创建用户&新用户授权等_第2张图片

如果想切换用户,千万不要再用sqlplus……这种方式,sqlplus适用于未连接数据库时登录数据库,如果当前已经连接数据库,那么要用connect lisi/lisi”口令来将当前用户切换为lisi。发现报错,如下图,那是因为没有设置权限。

Oracle-04-用SQL*PLUS创建用户&新用户授权等_第3张图片

四、给新创建的用户授权

SQL命令:grant connect,resource to lisi;

(给用户lisi赋予connect,resource角色,这俩角色含有许多权限,connect是保证该用户能连接数据库,resource是该用户可以使用数据库资源)

输入如上命令后,回车,发现报错,如下图:


那是因为上面连接未授权的新创建用户lisi失败,断开ORACLE连接,所以如果直接给lisi授权,是在未连接数据库时给新用户lisi授权,必然报错,解决方法就是重新用sys用户登录数据库:

步骤1:输入connect sys/aaa as sysdba口令(这里密码可以随意写),回车,重新登录数据库,如下图:


步骤2:重新用grant connect,resource to lisi口令给新用户lisi授权,成功,如下图:


此时就可以直接将当前用户切换为新用户lisi,用命令:connect lisi/lisi;即可,注意分号不可少,如下图:


【注意】ORACLE是基于用户去创建表。

如果想删除自己创建的用户,可用命令是:drop user lisi;注意分号不可少,且当前连接数据库的用户必须具有删除用户权限(如sys)。

你可能感兴趣的:(Oracle-04-用SQL*PLUS创建用户&新用户授权等)