windows和Linux下的mysql授权表设置攻略

windows和Linux下的mysql授权表设置攻略,第1张

在Windows中,当mysql安装完成之后不需要创建数据目录和授权表。在数据目录下的MySQL数据库中存在一套预初始化的'账户的授权表。不要运行Unix中使用的mysql_install_db脚本。

在Unix上安装MySQL后,需要初始化授权表、启动服务器,并确保服务器工作正常。并为授权表中的账户指定密码。

在Unix中,由mysql_install_db设置授权表。

如果系统为安装好的CentOS5,则只需要运行

# mysql_install_db --user=mysql --datadir=/var/lib/mysql_ndbd/

一定要确保由mysql登录账户拥有数据库目录和文件,以便在以后运行服务器具有读、写访问权限

当然,也可以以

mysqld_safe --user=mysql --skip-grant-tables &跳过授权表来登录,登录进去重新赋权限,同时更新权限表:flush privileges

hi 楼主,在数据库中创建包含很多,视图,索引,临时表的创建权限都能分开赋予,你可以执行 show privileges 来查看权限参数,我这边就以创建表为例,只包含查询表功能,其他修改,删除,备份没有权限;以下是步骤:

1,create user 'tom'@'%' identified by '123456'---创建用户,无权限;

2, grant create,select on wangxh2.* to tom-----把wangxh2库的所有表的创建和查询赋予tom

3,flush privileges-----刷新权限表才能起效

接下来是测试:

mysql>show databases

+--------------------+

| Database |

+--------------------+

| information_schema |

| test |

| wangxh2|

+--------------------+

3 rows in set (0.06 sec)

mysql>use wangxh2

Database changed

mysql>show tables

+-------------------+

| Tables_in_wangxh2 |

+-------------------+

| test |

+-------------------+

1 row in set (0.00 sec)

mysql>drop test

ERROR 1064 (42000): You have an error in your SQL syntaxcheck the manual that corresponds to your MySQL server version for the right syntax to use near 'test' at line 1

mysql>drop table test

ERROR 1142 (42000): DROP command denied to user 'tom'@'localhost' for table 'test'

mysql>select count(*) from test

+----------+

| count(*) |

+----------+

| 33554432 |

+----------+

1 row in set (0.01 sec)

mysql>insert into test values(1)

ERROR 1142 (42000): INSERT command denied to user 'tom'@'localhost' for table 'test'

mysql>delete from test

ERROR 1142 (42000): DELETE command denied to user 'tom'@'localhost' for table 'test'

mysql>update test set id=1

ERROR 1142 (42000): UPDATE command denied to user 'tom'@'localhost' for table 'test'

mysql>create table test1 (id int)

Query OK, 0 rows affected (0.02 sec)

mysql>insert into test1 values(1)

ERROR 1142 (42000): INSERT command denied to user 'tom'@'localhost' for table 'test1'

[mysql@localhost ~]$ mysqldump -u tom -paidengshan wangxh2 >/home/mysql/aa.sql

mysqldump: Got error: 1044: Access denied for user 'tom'@'%' to database 'wangxh2' when using LOCK TABLES

[mysql@localhost ~]$

-----------------------------------------------------------------------------------------

以上测试发现,tom对wangxh2有建表,查询表的权限,但是修改,删除,新增,备份都没有权限,达到你的需求了


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/6407371.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-21
下一篇 2023-03-21

发表评论

登录后才能评论

评论列表(0条)

保存