草庐IT

mysql - 了解 MySQL 密码

coder 2023-10-06 原文

可能我再笨不过了,但说真的,这是我第一次不得不考虑它(这是第一次单用户应用程序从多个位置变成多用户应用程序)。 MySQL(或任何其他数据库)密码的目的是什么?我们在连接字符串中看到的密码,好像是这样的:

"SERVER=localhost;DATABASE=tree;UID=root;PASSWORD=branch;Min Pool Size = 0;Max Pool Size=200"

branch是用户root访问数据库tree的代码字吗?还是 root 可以访问特定机器上的任何 MySQL 数据库?或者它是任何用户访问数据库 tree 的密码?或任何用户访问该机器上任何 MySQL 数据库的密码?

所以我的问题基本上是?

  1. 密码是特定于 MySQL、数据库还是用户?或者针对特定 MySQL 安装上特定数据库的特定用户?或者这些的任意组合?

  2. 我们可以为 MySQL 本身设置一个密码吗(如果 branch 不是这种情况),我们可以为数据库本身设置一个密码吗(如果 不是这种情况)分支) 等?

抱歉我的无知;)

编辑:我可以运行这个查询来删除我的数据库:

query = "DROP DATABASE tree";

使用连接字符串:

"SERVER=localhost;UID=root;PASSWORD=branch;Min Pool Size = 0;Max Pool Size=200"

这是否意味着密码不是针对每个数据库,而是针对每个用户?

最佳答案

1) Is the password specific for the MySQL, or the database, or the user? Or for that particular user for that particular database on that particular MySQL installation? Or any combination of these?

让我从头开始。第一次安装 MySQL 时,系统会要求您输入用户名(比如 root)和密码(比如 root)。这是针对整个服务器的。 使用上述用户名和密码连接到服务器后,您可以出于不同的原因创建用户帐户,例如 - 用户“abc”和密码“xxx”应该只连接到一个数据库,比如 Test。并且,另一个密码为“aaa”的用户“xyz”可以连接到服务器并访问所有数据库,但只有 SELECT 权限。

 CREATE USER 'abc'@'%' IDENTIFIED BY 'xxx'; 
 FLUSH PRIVILEGES; 
 GRANT ALL ON `test`.* TO 'abc'@'%' WITH GRANT OPTION;

此处用户“abc”和密码“xxx”可以连接到服务器,但权限很小——只能访问测试数据库。

 CREATE USER 'xyz'@'%' IDENTIFIED BY 'aaa'; 
 FLUSH PRIVILEGES; 
 GRANT SELECT ON *.* TO 'xyz'@'%' ;

此用户 - “xyz”,密码为“aaa”,仅使用 SELECT 权限连接到服务器。

因此,三个具有不同密码的用户实际上可以使用“root”连接到服务器,密码为“root”的用户拥有所有权限,而“abc”和“xyz”具有最小权限。

我想我也回答了你的第二个问题:-)

关于mysql - 了解 MySQL 密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9964403/

有关mysql - 了解 MySQL 密码的更多相关文章

  1. 使用canal同步MySQL数据到ES - 2

    文章目录一、概述简介原理模块二、配置Mysql使用版本环境要求1.操作系统2.mysql要求三、配置canal-server离线下载在线下载上传解压修改配置单机配置集群配置分库分表配置1.修改全局配置2.实例配置垂直分库水平分库3.修改group-instance.xml4.启动监听四、配置canal-adapter1修改启动配置2配置映射文件3启动ES数据同步查询所有订阅同步数据同步开关启动4.验证五、配置canal-admin一、概述简介canal是Alibaba旗下的一款开源项目,Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。Git地址:https://github.co

  2. ruby-on-rails - 在 Rails 中自定义 "Password confirmation doesn' t 匹配密码 - 2

    有没有办法在Rails中为确认字段自定义消息?例如在设计中我必须输入密码和password_confirmation并且错误消息是:Passwordconfirmationdoesn'tmatchPassword我可以更改事件记录语言环境消息(“不匹配”),但它会在该语言环境消息的开头和结尾输出密码确认和密码,所以我得到如下内容:"PasswordconfirmationmustmatchPassword"有没有办法将其更改为不同的字符串?PasswordconfirmationandPasswordmustmatch.编辑另一件事是拥有完全自定义的消息,例如:'Setpassword

  3. ruby-on-rails - 无法安装 mysql2 0.3.14 gem - 2

    我看到其他人也遇到过类似的问题,但没有一个解决方案对我有用。0.3.14gem与其他gem文件一起存在。我已经完全按照此处指示完成了所有操作:https://github.com/brianmario/mysql2.我仍然得到以下信息。我不知道为什么安装程序指示它找不到include目录,因为我已经检查过它存在。thread.h文件存在,但不在ruby​​目录中。相反,它在这里:C:\RailsInstaller\DevKit\lib\perl5\5.8\msys\CORE\我正在运行Windows7并尝试在Aptana3中构建我的Rails项目。我的Ruby是1.9.3。$gemin

  4. ruby - 了解在 Ruby 中与 lambda 一起使用的 inject 行为 - 2

    我经常将预配置的lambda插入可枚举的方法中,例如“map”、“select”等。但是“注入(inject)”的行为似乎有所不同。例如与mult4=lambda{|item|item*4}然后(5..10).map&mult4给我[20,24,28,32,36,40]但是,如果我制作一个2参数lambda用于像这样的注入(inject),multL=lambda{|product,n|product*n}我想说(5..10).inject(2)&multL因为“inject”有一个可选的单个初始值参数,但这给了我......irb(main):027:0>(5..10).inject

  5. ruby-on-rails - 如何测试自己对 Ruby/ROR 的了解? - 2

    是否有self验证的问题列表。看着那个,我可以确定我知道。我应该复习一下。在学习的过程中,我列了一个这样的list,但它只包含我在某处听说过的项目。我需要一段时间才能找到新的东西。 最佳答案 以下是针对ruby​​和Rails的一些测试列表。证书名称:RubyonRails谁提供:oDeskIncorporation认证费用:免费网站:https://www.odesk.com/tests/985?pos=0证书名称:RubyonRails提供者:Techgig.com(TimesBusinessSolutionsLimited(T

  6. ruby - 如何使用 ruby​​ mysql2 执行事务 - 2

    我已经开始使用mysql2gem。我试图弄清楚一些基本的事情——其中之一是如何明确地执行事务(对于批处理操作,比如多个INSERT/UPDATE查询)。在旧的ruby-mysql中,这是我的方法:client=Mysql.real_connect(...)inserts=["INSERTINTO...","UPDATE..WHEREid=..",#etc]client.autocommit(false)inserts.eachdo|ins|beginclient.query(ins)rescue#handleerrorsorabortentirelyendendclient.commi

  7. ruby-on-rails - 了解 "attribute_will_change!"方法 - 2

    我想覆盖store_accessor的getter。可以查到here.代码在这里:#Fileactiverecord/lib/active_record/store.rb,line74defstore_accessor(store_attribute,*keys)keys=keys.flatten_store_accessors_module.module_evaldokeys.eachdo|key|define_method("#{key}=")do|value|write_store_attribute(store_attribute,key,value)enddefine_met

  8. ruby-on-rails - 我如何比较 'Bcrypt' Gem解密的密码和加密的密码 - 2

    我正在尝试对某些帖子的评论使用简单的身份验证。用户使用即时ID和密码输入评论我使用“bcrypt”gem将密码存储在数据库中。在comments_controller.rb中像这样@comment=Comment.new(comment_params)bcrypted_pwd=BCrypt::Password.create(@comment.user_pwd)@comment.user_pwd=bcrypted_pwd当用户想要删除他们的评论时,我使用data-confirm-modalgem来确认数据在这部分,我必须解密用户输入的密码以与数据库中的加密密码进行比较我怎样才能解密密码,

  9. ruby-on-rails - 如何在记录更新期间从验证中排除密码字段? ( rails 3.0.4, ruby 1.9.2) - 2

    我有一个允许更新用户记录的表单。它包含:password和:password_confirmation字段,但我不希望在数据库中已存储加密密码时对它们运行验证。View文件中的字段:'ConfirmPassword'%>在互联网上搜索时,我发现了这段代码,我认为它是针对以前版本的Ruby/Rails的。(我会把它放在我的用户模型中。)validates_presence_of:password,:on=>create由于我的用户模型中密码验证的语法不同(如下),我对我需要的语法感到困惑。validates:password,:presence=>true,:confirmation=>

  10. ruby-on-rails - Devise 在更改密码后注销用户 - 2

    我正在使用devise,当用户更改密码时,网站会将他们注销。我在网上读到,添加sign_in可以解决问题但不起作用,并且当密码更改时用户会注销。这是我的代码if@user.errors[:base].empty?and@user.update_attributes(params[:user])sign_in(current_user,:bypass=>true)flash[:success]="Useraccounthasbeensuccessfullyupdated"redirect_toedit_user_path(params[:site_id],@user)elserender

随机推荐