登录
[client]登录配置
user=mydefaultname
password=mydefaultpass
host=.0.0.1
mysql-uroot-proot23mysite
-p跟root后面不能有:号
--user=root--password=root,长选项
用户名最长32个字符
--default-character-set=utf-8,指定utf8编码连接数据库
mysql_config_editor
在用户根目录下生成一个.mylogin.cnf的配置文件,用户隐藏密码登录
mysql_config_editorset--login-path=root2--user=root--host=.0.0.1--port=--password,回车提示密码
mysql_config_editorprint--all,显示已配置的登录标签
mysql--login-path=root2,使用登录标签登录
ssl连接
8以后,ssl连接默认开启
配置文件
[mysqld]
ssl-ca=/data/newcerts/ca.pem
ssl-cert=/data/newcerts/server-cert.pem
ssl-key=/data/newcerts/server-key.pem
登录,指定客户端证书和秘钥
mysql-uxq3-pxq3-h.0.0.1-P--ssl-cert=/data/newcerts/client-cert.pem--ssl-key=/data/newcerts/client-key.pem
have_openssl,
have_ssl,默认都开启,支持ssl连接
--ssl-ca,CA路径
ThepathnameoftheCertificateAuthority(CA)certificatefile.(--ssl-capathissimilarbutspecifiesthepathnameofadirectoryofCAcertificatefiles.)
CA文件的路径,--ssl-capath指定目录
certificateauthority,CA,证书中心
--ssl-cert,公钥证书,给客户端
--ssl-key,私钥文件
require_secure_transport,强制客户端ssl连接,ConfiguringEncryptedConnectionsasMandatory(强制)
ssl-cihper,用于加密连接的许可秘钥列表,
Thelistofpermissibleciphersforconnectionencryption,permissible,许可,cipher密码(计算机英语)
ssl-crl,包含证书的撤销列表
Thepathnameofthefilecontainingcertificaterevocationlists,revocation撤销
--ssl-mode=required,请求用ssl加密连接,disabled,不使用ssl,verify_ca,verify_identity验证证书
CA文件说明
ca.pem,CA证书签名
ca-key.pem,CA私钥
client-cert.pem
client-key.pem
创建证书
opensslgenrsaca-key.pem,生成CA私钥
opensslreq-new-x-nodes-days-keyca-key.pem-outca.pem,生成自签名的CA数字证书
CA的证书公共名称不能和服务器和客户端的任何一个属性值相同,否则报错
opensslreq-newkeyrsa:-days-nodes-keyoutserver-key.pem-outserver-req.pem,生成服务器证书请求文件并生成私钥
opensslrsa-inserver-key.pem-outserver-key.pem,服务器私钥转换成RSA私钥文件格式
opensslx-req-inserver-req.pem-days-CAca.pem-CAkeyca-key.pem-set_serial01-outserver-cert.pem,生产服务器数字证书
opensslreq-newkeyrsa:-days-nodes-keyoutclient-key.pem-outclient-req.pem,生成客户端证书请求文件并生成私钥
opensslrsa-inclient-key.pem-outclient-key.pem,客户端私钥转RSA格式
opensslx-req-inclient-req.pem-days-CAca.pem-CAkeyca-key.pem-set_serial01-outclient-cert.pem,客户端数字证书
安全管理可能用到的函数
md5(str)
encode(str,key),使用key键str
decode(crypt_str,key),使用key解密字符串
安全建议
不用root用户运行mysql,否则sql漏洞被利用会让攻击者拿到root权限
mysqld安全选项
--allow-suspicious-udfs,用户自定义函数的限制,注意,变成数据库参数-改为下划线
--local-infile[={0
1}],为0,客户端不能使用LOADDATALOCAL
默认的loaddata是指服务器的目录
编译时没有启用--enable-local-infile,则不能用loaddatalocal,除非用mysql_options()函数做调整
--skip-show-database,打开,运行用户查看所有数据库名,否则,只能看到自己有权限的数据库名
--safe-user-create,打开,不能通过grant语句创建用户
--secure-file-priv=dir_name,外部数据导入导出目录
只能对该变量指定的目录里面的文件做,loaddata,select...intooutfile,load_file()等操作
目录必须存在,mysql不会自动建立
改变量不指定或者为null,mysql不允许做导入导出操作
--skip-grant-tables,不校验权限,即所有用户可以对所有数据库有完全权限
mysqladminflush-privileges
mysqladminreload
FLUSHPRIVILEGES
以上都可以让数据库启用权限校验
--skip-name-resolve,不解析主机名,即Host表里面必须是ip或者localhost
--skip-networking,不允许tcp/ip连接,只能用sock文件连接数据库
系统权限表
mysql库,存放的系统表,用于用户登录后的权限验证
user,全局所有数据库的权限
db,用户在指定数据库中的权限
table_priv,用户在指定表中的权限
column_priv,用户对指定列的权限
其他安全功能
支持双密码验证
支持代理账户
支持审计功能