orcal的基础知识巩固

发布时间 2023-04-20 22:00:19作者: 小码果

今天重新拿起数据库这一块,感觉还不错,虽然出现了很多挫折,但是都能一一化解:

建议一定要老老实实在cmd中去创建用户,创建表,只有这样你的技术才能进一步精进!

首先登陆数据库之后,用connect /as sysdba 命令进入超管用户权限内;

由于当时在前端(区别于cmd为后端)PLsql客户端中创建的jack账户,也忘记了密码。

由于此数据库在服务器,所以在本地电脑安装了一个客户端软件navicat(Navicat Premium 16),远程连接真是费时间。

有些人也喜欢PLsql客户端,这个因人而异,我当时觉得PLsql客户端配置又繁琐,还可能无法连接mysql,所以就选择navicat。

今天用navicat创建了2个表,发现其中一个表的数据无法修改,提示

oracle中 ORA-01950: 对表空间 'users' 无权限 

结果查询得知,是没有给此用户jack授权,所以需要授予resource权限:

注:

RESOURCE角色:仅具有创建CLUSTER,INDEXTYPE,OPERATOR,PROCEDEURE,SEQUENCE,TABLE,TRIGGER,TYPE的权限。同时,当把ORACLE resource角色授予一个user的时候,不但会授予ORACLE resource角色本身的权限,而且还有unlimited tablespace权限,但是,当把resource授予一个role时,就不会授予unlimited tablespace权限。

CONNECT角色:仅具有创建SESSION的权限

参考链接:ORACLE的CONNECT和RESOURCE角色权限

 

授权语句:grant resource to jack;

若要在cmd中查看用户jack空间下的表,必须要用此用户信息登陆,发现登陆不了。(上图13行)提示登陆被拒绝,显然是密码错误的原因。

所以,遇到密码忘记的问题,可以尝试多试几次,说不准试成功了呢?

我是个例外,没有成功,只能想办法修改,这一点做的比mysql好些。显然不能直接修改,必须要在超管的权限下:

connect /as sysdba 

然后:

如果没有create session权限也是无法登陆的;继续用超管账户给jack授权:

grant create session to jack;

注:一定要用超管账户

发现授权之后,可以登陆jack账户;

我们利用select table_name from user_tables;命令查询此用户下的表信息;

发现,虽然可以看到所有表名信息,但是无法查看表结构信息;

一查发现,客户端管理工具创建的表,有重新编码的可能,所以查之前,给这个表名加上英文格式的双引号;

今天收获满满,明天继续研究!加油!