我不小心做了一些愚蠢的事情,并在mysql控制台中输入了以下内容:
mysql> grant all on myDB.* to root@'%' identified by 'root';
..。并且数据库配置对远程登录开放。现在,我需要删除此授权,但不希望意外地撤销我的root用户的所有特权,并有效地将我自己锁定在db admin之外。我该怎么办?
我的服务器上有几个用户可以访问每个MySQL数据库。我想取消特权,但我不知道该怎么做。
例如:我有一个用户bob,他可以访问服务器上的每个数据库。我运行以下命令来查看bob具有哪些特权:
mysql -e "select * from information_schema.user_privileges;" | grep bob
'bob'@'%' def SELECT NO
'bob'@'%' def INSERT NO
'bob'@'%'
我已经习惯了mysql的用户权限。
GRANT ALL PRIVILEGES ON db_base.phonebook TO db_user @'%' IDENTIFIED BY 'db_passwd';
以及其他影响特定用户如何与mysql交互的事情。我有一个由我运行的程序创建的数据库,它有自己的权限。我不知道如何编辑那个数据库的权限。是的,这句话用词很差,所以我给你们看:
(root@localhost) [mysql]> SELECT host,db,user,select_priv,insert_priv FROM mysql.db;
+-----
我有一个用户的MySQL 8数据库,我将所有特权授予该用户如下:
GRANT ALL ON test_db.* TO 'test_user'@'%';
当我以这个用户的身份登录到mysql并运行以下命令时,我会发现说ERROR 1227 (42000): Access denied; you need (at least one of) the RELOAD or FLUSH_TABLES privilege(s) for this operation时出错
FLUSH TABLES;
我以为授予所有权限都会给这个用户重新加载或FLUSH_TABLES特权(S)
我在k8s集群上运行了一个mysql数据库。以前,当我通过mysql -u root -p登录并输入密码时,它列出了所有的数据库。但我的应用程序无法连接到该数据库,并向1045, "Access denied for user 'root'@'ipaddress' (using password: YES)"显示只有一台主机,即%,而用户是root用户
我也更新了秘密并重新启动部署,但仍然显示了上述错误。
然后运行此命令将所有权限授予root用户。
GRANT ALL ON root.* TO 'root'@'localh
我有一个包含以下内容的数据库
id | userid | name
1 | 1 | John
2 | 1 | John
3 | 2 | Joe
4 | 2 | Joe
5 | 2 | Joe
6 | 3 | Sue
7 | 3 | Sue
我需要得到一种方法,我可以创建一个数据库,然后创建用户。我在mysql中创建的每个用户都限制他们访问他们的userid的数据。数据库中的每个数据库表都有userid值。
因此,无论是读取、更新、插入还是删除。如果它正在通过我附加到该数据库的特定mysql用户,我希望该用户仅读
我已经登录到mysql...
mysql -u root -pmypass
我已经运行了以下命令来删除成功工作的数据库用户
mysql> FLUSH PRIVILEGES; DROP USER 'myuser_shop';
然后,我可以使用下面的命令成功地添加用户,这也是成功的
mysql> FLUSH PRIVILEGES; CREATE USER 'myuser_shop' IDENTIFIED BY 'mypass';
上面的命令使用主机作为通配符(%)来创建用户。我遇到的问题是,如果我要创建一个主机为localhost或外部I
我已经使用以下查询将访问MySQL数据库的所有权限授予了一个新用户
grant all privileges on database.* to root@example.com identified by 'password';
紧接着是
flush privileges;
在此之后,我看到在mysql.user中添加了一个新行,但所有列中都有' N‘(如Select_priv =N、Insert_priv=N等)。
N是否意味着用户没有被授予所有权限?这是为用户授予权限的方式吗?这是我第一次这样做。需要帮助吗?
谢谢。
短版本:如何编写一个MySQL过程来列出特定用户可以访问的MySQL数据库中的几个表中的哪一个?
更长版本
我正在编写一个多用户应用程序,它可以访问一个数据库,其中包含了一家公司几个分支的数据。数据库有许多查找表,任何用户都可以访问,每个分支只有授权用户才能访问一个表。我的策略是:
privilege.From 编写一个存储过程,返回用户选择应用程序的相关表的列表,调用过程。如果只有一个返回的表,使用它,否则让用户选择他们想要访问的分支(例如对于管理人员)。
我很难弄清楚如何编写这样的存储过程。SHOW GRANTS FOR CURRENT_USER是一种明显的可能性,但是解析类似于:
GRA
我最近尝试了很多web开发应用,比如Drupal,Moodle,Efront和Elgg。为了提高安全性,我使用Parallels在Mac OS X 10.4中的虚拟XP机器上的XAMPP安装程序上运行测试服务器。我认为这应该是非常安全的,对吧?
在安装像Elgg这样的软件时,它会要求我在MySQL服务器中创建一个用户,以便它可以访问数据库。我想知道我创建新用户的方法是否正确,以及我应该授予该用户什么权限。
目前,我通过进入PHPMyAdmin、MySQL数据库、用户表并插入新行来创建新用户。这是正确的吗?由于某些原因,它并不总是有效的。
附言-我应该为这一切而烦恼,还是让每个软件都使用我的根账
我正以用户“someuser”的身份连接到mysql服务器。当我从本地机箱连接到服务器时,我可以看到所有的数据库。
但是,当我进入服务器并使用'someuser‘登录并执行show databases;时,我只看到两个:information_schema和test
当我也将SSH放入DB时,我如何查看所有的数据库?
show grants;显示了以下内容
mysql> show grants;
| Grants for dev@localhost |
| GRANT USAGE ON *.
我在mysql 5.1中创建了用户,并给出了所有特权,详细信息如下:
mysql> show GRANTS FOR test;
+-------------------------------------------------------------+
| Grants for test@% |
+-------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'tes