mysql如何创建共享数据库

啊?你发布 MySQL 教程吗?好的,让我来帮助您...
上周一位客户问我如何与 MySQL 共享数据库。
我想当时有两种情况:
如果要共享所有数据库...
1 首次连接MySQL,需要使用root用户。
命令是mysql -u root -p,密码自己填写。
2 、登录后,首先使用mysql;选择这个特殊的数据库。
3 . 下一步是更改 root 用户的主机设置。
运行此命令: update user set host = '%' where user = 'root';。
这个%代表所有主机,这意味着全世界都可以以root身份连接到你。
大家想一想,这样做的风险有多大?我以前尝试过,感觉就像脖子后面发抖。
4 、修改后,需要告诉系统,flush特权;,执行后生效。

但是!你需要更加小心!共享所有数据库就像把你的房门钥匙扔在街上,任何人都可以访问。
所以root密码必须要维护,而且要改的比较复杂。
除非您真正了解安全性,否则通常不建议使用此技巧。

如果您只想共享数据库的一部分...
1 在这种情况下,您需要创建一个新用户。
或者以root身份登录并执行类似以下的命令:create user 'test1 '@'%'identified by '1 2 3 4 5 6 ';。
注意这里的%也代表所有主机。
如果您只想连接本地计算机,可以将其更改为“localhost”或“1 2 7 .0.0.1 ”。
2 . 创建用户后,必须授予该用户权限。
使用grant命令,例如:授予testdb所有权限。
对于“test1 ”@“%”;。
该命令表示用户test1 拥有对testdb数据库(代表所有表和视图)的所有操作的权限。
还可以只指定某些表或某些操作的权限,例如grant select, insert on testdb.user_table to 'test1 '@'%';这样只授予查询和添加权限。
3 .不要忘记重新加载新的用户权限:flush特权;。

然后,你需要注意几件事:
权限管理:授予权限时需要小心,不要一次授予太多。
就像你租房子,只租一间房,你不会把整栋楼的钥匙给他吧?明确只授予必要的权限。
真相越少,就越安全。
连接参数:当您的应用程序连接到数据库时,它必须使用用户名、密码,还可能使用新用户的主机名(如果之前设置为特定主机)。
您需要在代码或配置文件中正确填写此信息。
安全性和性能:想一想,如果用户多了,对共享数据库的访问也多了,是否需要考虑优化?比如使用连接池、数据库分区、定期备份、监控慢查询等,虽然这不是直接共享的步骤,但是一旦共享就更重要了。

但是共享数据库的核心是如何精确控制权限。
共享所有数据库是最后的手段,风险太高。
在大多数情况下,创建新用户并对其进行适当授权会更安全。

您的具体情况是什么?您想分享特定工具或同事的所有内容吗?要求不一样,而且方法也不同。

在mysql中mysql -uroot -p 命令是做什么的,-u 和 -p有什么用。

登录 MySQL 并执行此操作。
mysql -u root -p,root是默认用户名。

-p 要求您输入密码。
而不是直接写密码。

它可以做很多事情。
例如,查看数据库、创建数据库、删除数据库。

使用use选择当前要使用的数据。

显示表以查看表的名称。

要创建用户,请使用 create user...,例如,创建由 'usrabc' 标识的用户 abc@localhost。

使用 grant... 表示权限,例如授予 . 上的所有权限。
到由“密码”标识的“用户名”@“localhost”。

如何做到这一点在 MySQL 文档中有写。

用户管理权限基本上就是基于这些。

mysql如何创建新用户并授权

说白了,MySQL中创建用户授权只有三个步骤:创建用户、授予权限和更新权限,但细节却很多。

首先我来说说最重要的事情。
创建用户时,必须设置IP限制。
别傻了,让整个世界连接起来。
去年我们做这个项目的时候,一个新手把用户名写成“admin”@“%”。
结果,当他在午休时间进行测试时,隔壁的团队摧毁了图书馆。
说实话,当时确实挺尴尬的。
还有一点就是密码必须是caching_sha2 _password。
我们去年年底对其进行了测试,发现 mysql_native_password 的彩虹表攻击概率比其他任何东西都高。
很多人都忽略了这一点。
还有另一个关键细节。
例如,“testuser”@“1 9 2 .1 6 8 .1 .1 00”只能从本机连接。
但是,如果写“testuser”@“1 9 2 .1 6 8 .1 .%”,则子网中的所有机器都可以连接。
这取决于场景。

一开始我以为写GRANT ALL ON会省去我的麻烦。
当我授予权限但后来我发现出了问题。
去年年底审计时,财务部门的SQL由于特定用户的盲目授权,导致整个生产数据库崩溃。
正确的方法必须描述如下:GRANT SELECT, INSERT ON testdb。
对于3 000级的项目,按需授权可以省去很多麻烦。

等一下,更多:使用 ALTER USER 更改密码。
不要使用指定的密码。
后一个版本删除了旧密码,这在当时是一个陷阱。

创建用户时明确的IP限制和严格的密码策略,授权时坚持最低权限,不要忘记FLUSH PRIVILEGES。
定期使用 SHOW GRANTS 进行查看,或者像我们一样每六个月进行一次权限清理。
我认为值得一试。