一、发现如之前所说的sqlplus sys/ as sysdba口令,对于sys用户可以随意输入密码都能连接数据库,比如“sqlplus sys/moon as sysdba”、“sqlplus sys/aaa as sysdba”等等都可以登录数据库
二、第一个SQL语句:sql*from all_users;
连接上数据库后,在cmd窗口输入以上SQL语句,回车,发现列出当前数据库的所有用户公开信息(注意:语句末尾分号必须输入)。下图截取了部分用户:
图中虚线上一行是类名:USERNAME、USER_ID、CREATED。
三、在当前连接的数据库创建新用户的条件:
(1)必须是管理员权限才能创建用户(或者以管理员身份
给某个用户分配一个能创建用户的权限也可以);
(2)学会创建用户的命令(注意:末尾分号不能少):
语法:create user 用户名 identified by 密码;
示例:create user lisi identified by lisi;
演示:用以上SQL语句创建用户LISI成功,然后用select*from all_users;语句查看发现有新创建的LISI用户,尽量避免密码为纯数字,因为ORACLE可能不允许创建纯数字的密码,如下图:
如果想切换用户,千万不要再用sqlplus……这种方式,sqlplus适用于未连接数据库时登录数据库,如果当前已经连接数据库,那么要用“connect lisi/lisi”口令来将当前用户切换为lisi。发现报错,如下图,那是因为没有设置权限。
四、给新创建的用户授权
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)。