暂无图片
暂无图片
暂无图片
暂无图片
3
暂无图片

使用普通用户在Data Studio工具中登陆GaussDB100的那些坑

原创 王小那个鑫 2019-12-03
5082
  1. 安装Data Studio
    Data Studio工具可以通过华为企业产品技术支持网站(https://support.huawei.com/enterprise/zh/index.html)进行下载。根据自己的客户端下载对应软件并解压,点击Data Studio.exe即可使用(运行需要安装java 1.8_141以上的版本)否则会报错。
    image.png
    2.使用Data Studio连接数据库
    1)创建用户,并进行赋权:
    SQL> create user wangxin identified by wangxin_123;
    SQL> grant connect,resource to wangxin;
    其中,connect和resource包含CREATE SESSION,CREATE TRIGGER,CREATE TABLE,CREATE SEQUENCE,CREATE PROCEDURE权限。
    2)通过本地连接数据库进行验证:
    zsql user/user_password@127.0.0.1:1888
    image.png
    可以看到,此时连接成功,并可以列出user_tables的表结构。
    3)然后利用Data Studio连接数据库:
    分别选择数据库类型、填写名称、主机、端口号、用户名、密码。
    image.png
    点击确定进行登陆,但发现出现如下报错:
    image.png
    我们从报错信息上可以看到,报错代码是GS-00331。通过GaussDB 100的用户使用手册查询,GS-00331错误是由于客户端IP地址不在白名单内,不允许连接造成的(其实在界面上的errMsg错误处也可以看到造成该错误代码的原因)。
    image.png
    那么,该如何增加白名单呢?我们可以通过以下两种方式进行添加:
    (1)修改配置文件,并在线reload hba config实现:
    在GAUSSDB_DATA目录下,找到cfg目录,然后修改zhba.conf文件;在文件中加入host * IP;保存退出,然后再数据库中reload hba config即可。
    image.png
    SQL> alter system reload hba config;
    或者将zhba.conf清空,然后再数据库中reload hba config即可(zhba.conf为空,表示可以从任何节点,用任何用户登陆数据库,但是zhba.conf清空后,由于没有127.0.0.1的认证规则,分布式集群下,SYS用户无法使用“zsql / as clsmgr”本地登录CN。)
    再次通过Data Studio登陆数据库:
    image.png
    发现此时数据库依然无法登陆,但是错误信息发生了变化,变成了GS-01001,通过errMsg错误信息可以发现,此时错误是由于权限不足导致,但是在创建的时候,我们已经赋予了connect和resource权限,按理来说应该可以正常连接了。这又是怎么回事儿呢?
    我们接着往下看,在客户端错误提示栏中最后的sql=…部分,可以清楚的看到,此时正在执行一个从sys_data_nodes表中读取node_type信息的sql语句,而该表属于sys用户。
    此时,我们可以尝试着将读取sys.sys_data_nodes的权限赋予该用户,并重新登陆。
    SQL> grant select on sys.sys_data_nodes to user;
    image.png
    发现此时,还要读取sys.dv_sessions和sys.dv_me两张表,我们只能继续赋权限。
    image.png
    可是,工具还要读取tablespace的权限。
    看来,Data Studio工具通过普通用户连接数据库的时候,还是需要读取很多的sys用户下的表才行。那么,为了方便或者快速使用,我们可以直接将select any table权限赋给普通用户
    SQL> grant select any table to user;
    image.png
    可以看到,此时普通用户已经通过Data Studio已经成功连接了数据库,并且可以做相关操作。
    但是需要注意的是数据库安全所要求的都是权限最小化管理。如果有了select any table权限,则在一些单位、公司可能是不允许的,那么此时我们就只能一个一个去赋权了。
    不过最后,我测试了一下,证实了,Data Studio登陆除了用户需要connect权限外,只需要sys用户下的另外五个权限就够,具体如下:
    grant select on sys.sys_data_nodes to user;
    grant select on sys.dv_sessions to user;
    grant select on sys.dv_me to user;
    grant select on sys.dv_tablespaces to user;
    grant select on sys.db_users to user;
    grant select on sys.adm_users to user;
    grant select on sys.sys_roles to user;
    (2)通过配置数据库中的TCP_INVITED_NODES参数:
    SQL> ALTER SYSTEM SET TCP_INVITED_NODES =‘192.168.129.1’;
    SQL> ALTER SYSTEM SET TCP_VALID_NODE_CHECKING = true;
    即可登陆。
    以上两种方法均可,第二种操作比较少可以直接通过数据库层完成;第一种方法比较好理解,但是需要操作系统的相关权限。
最后修改时间:2019-12-03 17:03:33
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
2人已赞赏
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

obpilot
暂无图片
5年前
评论
暂无图片 0
请问哪里可以下载高斯数据库?
5年前
暂无图片 点赞
1
王小那个鑫
暂无图片
5年前
回复
暂无图片 0
目前GaussDB 100 是内测版本,在公网上无下载环境,不过可以到华为云申请公测版本GaussDB T
5年前
暂无图片 点赞
回复
章芋文
暂无图片
5年前
评论
暂无图片 0
欢迎持续分享gaussdb文章。
5年前
暂无图片 点赞
评论