首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL:如何避免用户看到我有其他数据库,并授予对一个DB上的一个视图的选择访问权?

问MySQL:如何避免用户看到我有其他数据库,并授予对一个DB上的一个视图的选择访问权?
EN

Stack Overflow用户
提问于 2013-12-29 01:42:21
回答 2查看 1.8K关注 0票数 1

我的服务器中有几个DB,我需要允许一个用户从其中一个DB的视图中选择记录,但我需要这个用户甚至看不到有其他DB,也没有看到在DB中有其他表属于视图。这个是可能的吗?

我在一个托管公司有一个帐户,一个共享的托管帐户,当我通过phpmyadmin访问它时,我才能看到我的DB。这和我所需要的很相似。谢谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-29 06:41:07

我发现这篇文章中包含的概述比实际的MySQL文档更有助于描述如何授予或拒绝MySQL特权的总体情况。

概览文章的要点是特权由mysql数据库中一系列越来越细粒度的权限表控制:mysql.user、mysql.db、mysql.host、mysql.tables_priv、mysql.columns_priv、mysql.procs_priv。一般规则是,细粒度表中特权的"Y“值高于粗粒度表中的"N”值。因此,建议的策略是首先拒绝user表中的大多数特权(这提供了最粗的控制),然后只对更细粒度的表进行特定的重写。

特别是,有一个名为数据库的特权,它由mysql.user表中的Show_db_priv列确定;对于所涉用户,您希望将其设置为"N“(正如上面所述,您可能希望将用户表中的大多数其他权限设置为"N”),然后只授予用户在mysql.db或mysql.tables_priv表中实际需要的特权,或者为您的特定情况所需要的任何权限。

票数 0
EN

Stack Overflow用户

发布于 2013-12-29 01:50:14

您必须使用授予权限将用户添加到数据库中。

创建新的数据库,简单地说,不添加,将用户添加到数据库中,用户就无法看到它。

用户能够找到数据库的唯一方法是尝试访问数据库并猜测数据库名称。因此,基本上,用户/黑客必须尝试连接到一堆随机的数据库名称,才能找到一个写着“拒绝访问”的名称。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20821289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档