四川住房建设部官方网站,南通企业网站排名优化,珠海网站怎样建设,崇信网站建设访问安全
权限体系
计算节点有两类用户#xff0c;一类是计算节点数据库用户#xff0c;用于操作数据#xff0c;执行SELECT#xff0c;UPDATE#xff0c;DELETE#xff0c;INSERT等SQL语句。另一类是关系集群数据库可视化管理平台用户#xff0c;用于管理配置信息。此…访问安全
权限体系
计算节点有两类用户一类是计算节点数据库用户用于操作数据执行SELECTUPDATEDELETEINSERT等SQL语句。另一类是关系集群数据库可视化管理平台用户用于管理配置信息。此章节将着重介绍计算节点用户相关内容。
基础权限
计算节点数据库用户必须被赋予逻辑库的权限才能访问逻辑库。计算节点提供了如下操作权限
权限类型可执行的SQL语句CREATECREATE TABLE,CREATE INDEXDROPDROP TABLE,DROP INDEX,TRUNCATE TABLE,RENAME TABLEALTERALTER TABLE,RENAME TABLESELECTSELECT,INSERT...SELECTUPDATEUPDATEDELETEDELETE,REPLACEINSERTINSERT,REPLACE,INSERT...SELECTSUPER管理端的语句, /!HotDB:dnid?/FILESELECT...INTO OUTFILE,LOAD DATA
SUPER权限说明
具有SUPER权限的user可以登录计算节点的3325端口可执行管理端的所有SQL语句否则不能登录管理端与执行管理端的SQL语句。
拥有SUPER权限的user可在3323端口执行HINT语句。如:
/*!hotdb:dnid1*/select * from table;权限范围
为计算节点数据库用户赋予权限时除SUPER权限外可指定user对逻辑库或表的操作权限。权限范围分为全局权限、逻辑库权限及表权限 全局权限拥有全局权限的user对所有逻辑库下的所有对象都拥有指定的权限。例如勾选全局权限SELECTUPDATEINSERTCREATE点击保存则当前用户可对所有逻辑库及表进行S/U/I/C操作。 逻辑库权限拥有逻辑库权限的user对该逻辑库下的所有对象拥有指定权限。 表权限表权限又分为表允许权限和表拒绝权限。拥有表允许权限的用户对该表拥有勾选的权限拥有表拒绝权限的用户将拒绝勾选的权限对于没有勾选的权限需要在表允许权限下勾选后方能拥有。拥有表拒绝权限的用户对该表拥有除了勾选的权限以外的其他所有权限例如勾选表拒绝权限SELECTUPDATEINSERTCREATE点击保存则当前用户不可对该表进行S/U/I/C操作若该用户勾选了表允许权限DELETE,DROP则当前用户拥有DELETE和DROP权限。
SUPER权限不指定特定逻辑库。只有持有SUPER权限的user可以执行管理端的语句管理端具体功能可参考管理端信息监控章节。
权限之间相互独立拥有表的UPDATE权限并不代表拥有该表的SELECT权限拥有SUPER权限并不代表拥有表的操作权限。另TRIGGER相关的权限目前未单独维护遵循权限规则为CREATE TRIGGER 需要 CREATE 权限、DROP TRIGGER 需要 DROP权限、TRIGGER内部语句不验证权限、DEFINER 相关全去除、SHOW TRIGGERS时相关字段为当前用户。
行控制权限
计算节点支持通过手动修改配置库中行权限控制表hotdb_user_row_privilege的方式为数据库用户增加行控制权限。
1.hotdb_user_row_privilege表结构如下 username为用户名host为主机名这两列与计算节点配置库中hotdb_user表关联用于确认需要配置行权限的数据库用户。用户名和主机名必须与hotdb_user表内数据完全对应 table_scope用于确认需要配置行权限的库表。支持四种填写格式 .所有库下的所有表 db_name.*某库下的所有表db_name为逻辑库名 *.tbl_name所有库下的某张表tbl_name为表名 db_name.tbl_name某库下的某表 where_condition用于控制用户可以访问的行数据条件可以是单个条件也可以是多个条件多个条件用and链接 enable默认为1表示开启行控制权限可以手动修改为0则停用该权限 create_time和update_time分别为创建该权限的时间和更新时间。
2.手动配置行控制权限示例
登陆计算节点配置库
mysql -uhotdb_config -pDRDS_config2013 -P3306 -h计算节点配置库IP地址
use hotdb_config;手动插入表数据为数据库用户配置表的行控制权限。插入规则后需动态加载生效
INSERT INTO hotdb_user_row_privilege (username, host, table_scope, where_condition) VALUES (‘用户名’, ‘主机名’, ‘逻辑库名.表名’, ‘行控制条件’);示例
mysql insert into hotdb_user_row_privilege (username, host, table_scope, where_condition) values (user_row, host, test_database.customer, id50);
-- 表示user_row%用户对于test_database库中的customer表只拥有id大于60的行的权限。可以通过修改enable字段的值停用或启用行控制权限。修改后需要动态加载生效 可以在3323服务端口执行show hotdb grants for ‘用户名’‘主机名’查看数据库用户已配置的行控制权限。
3.注意事项 行控制条件的内容必须符合MySQL语法规则存在error in your SQL syntax的会被自动跳过不生效 当配置的行控制条件存在语法问题时动态加载后计算节点日志hotdb.log会输出warning日志。
通信认证
简介SSLSecure Socket Layer 安全套接层是HTTPS下的一个协议加密层有1、2、3三个版本目前只使用SSL 3.0。IETF对SSL进行标准化后在3.0版本的基础上发布了TLS1.0Transport Layer Security 安全传输层协议。TLS协议目前有1.0、1.1、1.2、1.3四个版本。支持SSL加密连接方式登录计算节点。
生成TLS秘钥
生成证书和密钥文件
可参考官方文档生成自签名的秘钥。例如可以用自带的命令mysql_ssl_rsa_setup来生成证书和密钥文件。
mysql_ssl_rsa_setup --datadir/usr/local/crt/其中客户端需要的秘钥有ca.pem、client-cert.pem、client-key.pem
服务端需要的秘钥有ca.pem、server-cert.pem、server-key.pem 注意 自带命令生成的证书无法进行CA认证参考链接https://dev.mysql.com/doc/refman/5.7/en/using-encrypted-connections.html 如果需要生成能够进行CA认证的自签名证书需要使用openssl工具可参考下列步骤进行
1.生成CA根证书私钥openssl genrsa 2048 ca-key.pem 2.生成CA根证书openssl req -new -x509 -nodes -days 3600 -key ca-key.pem -out ca.pem3.注意信息填写步骤中Common Name最好填入有效域名并且不能与签发的证书中的Common Name一样这里我们填写127.0.0.1 生成服务器证书请求文件openssl req -newkey rsa:2048 -days 3600 -nodes -keyout server-key.pem -out server-req.pem注意信息填写步骤中Common Name需要填入计算节点所监听的IP地址/域名客户端将用此IP进行服务的连接注意不能和CA证书中的信息一样 4.用openssl rsa命令处理秘钥以删除密码openssl rsa -in server-key.pem -out server-key.pem 5.为服务端生成自签名证书openssl x509 -req -in server-req.pem -days 3600 -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem 6.生成客户端证书请求文件openssl req -newkey rsa:2048 -days 3600 -nodes -keyout client-key.pem -out client-req.pem注意信息填写步骤中Common Name不能和CA证书中的信息一样 7.用openssl rsa命令处理秘钥以删除密码openssl rsa -in client-key.pem -out client-key.pem 8.为客户端生成自签名证书openssl x509 -req -in client-req.pem -days 3600 -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem
生成server.jks文件 对于计算节点来说需要将秘钥转为Java标准的KeyStore文件。即下文中提到的.jks。生成步骤为
1.先使用openssl工具将cert和key文件合成pfx文件
本次样例中密码输入SDcrtest程序自带的密钥文件其密码为hotdb.com可直接使用此处示例为需要另外重新生成秘钥时使用
openssl pkcs12 -export -out server.pfx -inkey server-key.pem -in server-cert.pem -CAfile ca.pem2.用Java提供的keytool工具将pfx转换为jks文件
keytool -importkeystore -srckeystore server.pfx -destkeystore server.jks -srcstoretype PKCS12配置TLS秘钥
生成好TLS秘钥后将相应的秘钥文件分别传输到计算节点服务端和客户端所在的服务器上并在计算节点中按要求配置如下三个参数之后才能使用
property nameenableSSLfalse/property!-- 是否开启SSL连接功能(Enable SSL connection or not) --参数说明true代表开启SSL功能false代表关闭SSL功能默认值为false
property namekeyStore/server.jks/property!-- 用于TLS连接的数据证书.jks文件的路径(Path to the data certificate .jks file for TLS connection) --参数说明: 计算节点在conf目录下默认提供了一套server.jks和client相关的pem文件其密码为hotdb.com可用于进行简单的连接测试。当选择使用自己生成 TLS证书或者使用付费的TLS证书进行连接需根据实际的路径和名称来填写。例如/usr/local/crt/server.jks。
property namekeyStorePassBB5A70F75DD5FEB214A5623DD171CEEB/property!-- 用于TLS连接的数据证书.jks文件的密码(Password of the data certificate .jks file for TLS connection) --参数说明程序自带的密钥文件中密码是hotdb.com通过select hex(aes_encrypt(hotdb.com,unhex(md5(Hotpu2013#shanghai#2017))))s加密得到默认keyStorePassBB5A70F75DD5FEB214A5623DD171CEEB。若使用自己生成的密钥文件需根据实际输入的密码来填写。例如前文输入密码SDcrtest通过select hex(aes_encrypt(SDcrtest,unhex(md5(Hotpu2013#shanghai#2017))))查询到keyStorePass值然后填写C43BD9DDE9C908FEE7683AED7A301E33。参数的修改无需重启计算节点服务 动态加载时会重新读取server.jks文件。若SSL相关逻辑初始化失败动态加载不会失败但后续的SSL连接无法正常建立非SSL连接不受影响。
TLS连接登录
客户端方式 使用MySQL协议的客户端可以使用如下方式指定秘钥文件进行连接
mysql -ujing01 -p123456 -h192.168.240.117 -P3323 --ssl-ca/usr/local/crt/ca.pem --ssl-cert/usr/local/crt/client-cert.pem --ssl-key/usr/local/crt/client-key.pem --ssl-modeverify_caJDBC方式 对于JDBC来说也需要相应的秘钥文件。操作方式可参考官方手册这里可通过两种方式
1.可通过将CA导入Java信任库的方式
keytool -importcert -alias MySQLCACert -file ca.pem -keystore truststore则JDBC连接时使用truststore文件 例如
jdbc:mysql://192.168.240.117:3323/smoketest?clientCertificateKeyStoreUrlfile:/usr/local/crt/truststoreclientCertificateKeyStorePasswordhotdb.comverifyServerCertificatetrue2.可通过使用证书的方式
openssl pkcs12 -export -in client-cert.pem -inkey client-key.pem -name mysqlclient -out client-keystore.p12
keytool -importkeystore -srckeystore client-keystore.p12 -srcstoretype pkcs12 -destkeystore keystore -deststoretype JKS则JDBC连接时使用keystore文件 例如
jdbc:mysql://192.168.240.117:3323/smoketest?clientCertificateKeyStoreUrlfile:/usr/local/crt/keystoreclientCertificateKeyStorePasswordhotdb.comNavicat等类似的客户端方式 对于Navicat等类似的客户端 可以在客户端设置中配置相关的文件位置进行连接 注意 对于某些版本的Navicat可能在勾选验证CA证书名后无法连接比如提示错误“2026 SSL connection error: ASN: bad other signature confirmation”这可能是该版本的动态链接库不兼容需要将其目录下的libmysql.dll替换为MySQL Workbench中的同名文件或者更新到更高的版本参考链接。
文章转载自: http://www.morning.lmdkn.cn.gov.cn.lmdkn.cn http://www.morning.ryfq.cn.gov.cn.ryfq.cn http://www.morning.nkiqixr.cn.gov.cn.nkiqixr.cn http://www.morning.hxrfb.cn.gov.cn.hxrfb.cn http://www.morning.bpmtg.cn.gov.cn.bpmtg.cn http://www.morning.qprtm.cn.gov.cn.qprtm.cn http://www.morning.kwyq.cn.gov.cn.kwyq.cn http://www.morning.ndxmn.cn.gov.cn.ndxmn.cn http://www.morning.lkbyq.cn.gov.cn.lkbyq.cn http://www.morning.lylkh.cn.gov.cn.lylkh.cn http://www.morning.mqtzd.cn.gov.cn.mqtzd.cn http://www.morning.mljtx.cn.gov.cn.mljtx.cn http://www.morning.dhdzz.cn.gov.cn.dhdzz.cn http://www.morning.nfbkz.cn.gov.cn.nfbkz.cn http://www.morning.jbgzy.cn.gov.cn.jbgzy.cn http://www.morning.brhxd.cn.gov.cn.brhxd.cn http://www.morning.mlmwl.cn.gov.cn.mlmwl.cn http://www.morning.wdpbq.cn.gov.cn.wdpbq.cn http://www.morning.ttxnj.cn.gov.cn.ttxnj.cn http://www.morning.yzzfl.cn.gov.cn.yzzfl.cn http://www.morning.mgmqf.cn.gov.cn.mgmqf.cn http://www.morning.dxzcr.cn.gov.cn.dxzcr.cn http://www.morning.lpgw.cn.gov.cn.lpgw.cn http://www.morning.tpwrm.cn.gov.cn.tpwrm.cn http://www.morning.jpmcb.cn.gov.cn.jpmcb.cn http://www.morning.rzmkl.cn.gov.cn.rzmkl.cn http://www.morning.wrlxy.cn.gov.cn.wrlxy.cn http://www.morning.kqwsy.cn.gov.cn.kqwsy.cn http://www.morning.bpttm.cn.gov.cn.bpttm.cn http://www.morning.dcmnl.cn.gov.cn.dcmnl.cn http://www.morning.rsjng.cn.gov.cn.rsjng.cn http://www.morning.xnnpy.cn.gov.cn.xnnpy.cn http://www.morning.fpzz1.cn.gov.cn.fpzz1.cn http://www.morning.mmhaoma.com.gov.cn.mmhaoma.com http://www.morning.ktmbp.cn.gov.cn.ktmbp.cn http://www.morning.mfltz.cn.gov.cn.mfltz.cn http://www.morning.wncb.cn.gov.cn.wncb.cn http://www.morning.mrfgy.cn.gov.cn.mrfgy.cn http://www.morning.lxcwh.cn.gov.cn.lxcwh.cn http://www.morning.tkflb.cn.gov.cn.tkflb.cn http://www.morning.mqmxg.cn.gov.cn.mqmxg.cn http://www.morning.tpyjr.cn.gov.cn.tpyjr.cn http://www.morning.qqtzn.cn.gov.cn.qqtzn.cn http://www.morning.bybhj.cn.gov.cn.bybhj.cn http://www.morning.tralution.cn.gov.cn.tralution.cn http://www.morning.phtqr.cn.gov.cn.phtqr.cn http://www.morning.hxrfb.cn.gov.cn.hxrfb.cn http://www.morning.nykzl.cn.gov.cn.nykzl.cn http://www.morning.prgrh.cn.gov.cn.prgrh.cn http://www.morning.qwzpd.cn.gov.cn.qwzpd.cn http://www.morning.nqxdg.cn.gov.cn.nqxdg.cn http://www.morning.hfytgp.cn.gov.cn.hfytgp.cn http://www.morning.pmsl.cn.gov.cn.pmsl.cn http://www.morning.rwzqn.cn.gov.cn.rwzqn.cn http://www.morning.rbkgp.cn.gov.cn.rbkgp.cn http://www.morning.xsrnr.cn.gov.cn.xsrnr.cn http://www.morning.cbnxq.cn.gov.cn.cbnxq.cn http://www.morning.tkcct.cn.gov.cn.tkcct.cn http://www.morning.tstkr.cn.gov.cn.tstkr.cn http://www.morning.hbjqn.cn.gov.cn.hbjqn.cn http://www.morning.fnhxp.cn.gov.cn.fnhxp.cn http://www.morning.xmnlc.cn.gov.cn.xmnlc.cn http://www.morning.jjnql.cn.gov.cn.jjnql.cn http://www.morning.wqbfd.cn.gov.cn.wqbfd.cn http://www.morning.pghgq.cn.gov.cn.pghgq.cn http://www.morning.xnbd.cn.gov.cn.xnbd.cn http://www.morning.jbztm.cn.gov.cn.jbztm.cn http://www.morning.qrqdr.cn.gov.cn.qrqdr.cn http://www.morning.rfgkf.cn.gov.cn.rfgkf.cn http://www.morning.smry.cn.gov.cn.smry.cn http://www.morning.lkthj.cn.gov.cn.lkthj.cn http://www.morning.dwrjj.cn.gov.cn.dwrjj.cn http://www.morning.bwdnx.cn.gov.cn.bwdnx.cn http://www.morning.rcgzg.cn.gov.cn.rcgzg.cn http://www.morning.rwpjq.cn.gov.cn.rwpjq.cn http://www.morning.nlmm.cn.gov.cn.nlmm.cn http://www.morning.ymtbr.cn.gov.cn.ymtbr.cn http://www.morning.kxnnh.cn.gov.cn.kxnnh.cn http://www.morning.zhengdaotang.cn.gov.cn.zhengdaotang.cn http://www.morning.yhjrc.cn.gov.cn.yhjrc.cn