我遵循了这些步骤。
1)我以root用户身份登录mysql。
2)创建一个名为"studentdb"的新数据库。
3)我使用db和从sqldump导入db表。
4)我为该studentdb创建了新用户,并为该用户提供了某些特权。
5)但是当我检查user select * from mysql.user;时,我找不到我创建的用户。
6)所以,当我使用这个命令select * from mysql.db order by db;检查新创建的db时,我也找不到它。
7)但是当我使用show databases;时,我可以找到新创建的数据库。
那么,为什么我在第六步中找不到新创建的数
短版本:如何编写一个MySQL过程来列出特定用户可以访问的MySQL数据库中的几个表中的哪一个?
更长版本
我正在编写一个多用户应用程序,它可以访问一个数据库,其中包含了一家公司几个分支的数据。数据库有许多查找表,任何用户都可以访问,每个分支只有授权用户才能访问一个表。我的策略是:
privilege.From 编写一个存储过程,返回用户选择应用程序的相关表的列表,调用过程。如果只有一个返回的表,使用它,否则让用户选择他们想要访问的分支(例如对于管理人员)。
我很难弄清楚如何编写这样的存储过程。SHOW GRANTS FOR CURRENT_USER是一种明显的可能性,但是解析类似于:
GRA
我们最近在新项目中从SQL Server切换到MySQL,而我仍然在努力理解安全模型。
我们的一个应用程序有一个名为MyApplicationUser的MySQL用户。为了方便起见,当我第一次开发这个应用程序时,我给了用户我认为是必需的特权。
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON MyApplication.* TO 'MyApplicationUser'@'%';
它似乎起作用了,所以我没有多想。在某种程度上,我调整了这个列表,以便用户也可以创建索引,尽管我不再记得我用来创建索引的代码了。
当将MySQL数据库从服务器(A)迁移到服务器(B)时,哪些表应该转储并迁移到服务器(B),包括用户授权?我不想手动重新输入用户帐户和密码。我希望使用像Navicat这样的第三方应用程序来完成这个任务,而不是使用mysqldump。我的理解是,下面的表格包含用户帐户(授予)数据:
mysql > db
mysql > user
但是,我读到mysql表不需要从服务器(A)迁移到服务器(B)以及information_scheme表。但是,如果不需要迁移mysql表,除非该注释不正确,我如何用主机、用户名、密码等迁移我的用户授予信息。
那么,应该为mysql用户设置哪些权限,该用户将被用作网站的“主”用户?
我认为应该为所使用的数据库设置数据和结构(见下文)。但是我还需要添加管理权限吗?如果您拥有一台web服务器,并将权限授予一个客户端,例如,希望您为他们托管一个网站,并赋予他们在自己的数据库上使用phpmyadmin的权限,这是否会有所不同。
数据
SELECT
INSERT
UPDATE
DELETE
FILE
结构
CREATE
ALTER
INDEX
DROP
CREATE TEMPORARY TABLES
SHOW VIEW
CREATE ROUTINE
ALTER ROUTINE
EXECUTE
CREATE
我的服务器上有几个用户可以访问每个MySQL数据库。我想取消特权,但我不知道该怎么做。
例如:我有一个用户bob,他可以访问服务器上的每个数据库。我运行以下命令来查看bob具有哪些特权:
mysql -e "select * from information_schema.user_privileges;" | grep bob
'bob'@'%' def SELECT NO
'bob'@'%' def INSERT NO
'bob'@'%'