如何禁止普通用户使用企业管理器列出服务器上的数据库列表

如何禁止普通用户使用企业管理器列出服务器上的数据库列表,第1张

在建立一个低权限数据库用户的时候,往往只希望他可以拥有对特定数据库的访问权限,对于特定数据库之外的信息,是知道的越少越好。首先,假设有一个低权限用户A、使用MSSQL自带的事件查探器进行分析可以知道,企业管理器使用如下语句获取数据库列表:select name, DATABASEPROPERTY(name, N'IsDetached'), (case when DATABASEPROPERTY(name, N'IsShutdown') is null then -1 else DATABASEPROPERTY(name, N'IsShutdown') end), DATABASEPROPERTY(name, N'IsSuspect'), DATABASEPROPERTY(name, N'IsOffline'), DATABASEPROPERTY(name, N'IsInLoad'), (case when DATABASEPROPERTY(name, N'IsInRecovery') is null then -1 else DATABASEPROPERTY(name, N'IsInRecovery') end), (case when DATABASEPROPERTY(name, N'IsNotRecovered') is null then -1 else DATABASEPROPERTY(name, N'IsNotRecovered') end), DATABASEPROPERTY(name, N'IsEmergencyMode'), DATABASEPROPERTY(name, N'IsInStandBy'), has_dbaccess(name), status, category, status2 from masterdbosysdatabases而查询分析器则使用如下语句获取数据库列表(执行一个存储过程)dbosp_MShasdbaccess这就是原因之所在了在默认情况下,数据库用户对系统数据库是拥有权限的,可以从系统数据库查询信息,所以,企业管理器通过查询master数据库来获取数据库列表的方式并不受用户所能访问的数据库的限制。而查询分析器执行的存储过程是经过权限限定后的数据库列表。那如果要禁止用户查看他没有权限访问的数据库名称,只有,,,,禁止他查询masterdbosysdatabases了把用户加入到master数据库的用户中去然后指派sysdatabases表的访问权限把A用户的select权限去掉只能使用查询分析器进行 *** 作了虽然有些严厉,但也是一种解决方法

购买阿里云ecs服务器后,很多人会选择自己搭建系统,有的人会选择云数据库,有的人会用自己搭建的数据库,但是自己搭建完成后,用navicat想要连接的自己的数据库时,却发生了这样的错误:
这是由于远程IP没有登录权限,root用户默认只能在localhost也就是只能在本机登录,需要设置允许其他IP登录权限。
解决方法:
在服务器内部登录数据库,然后执行:
grant
all
privileges
on

to
'root'@'%'
identified
by
'123456'
with
grant
option;
表示让所有的ip都能访问该数据库,并 *** 作数据库的任何对象。
其中:
第一个是指数据库
代表所有数据库
第二个指数据库对象
代表数据库中所有对象
'root'@'%'
root是制定要授权的数据库用户
%代表允许登录的IP
(如:1111)
123456是你的数据库密码
执行完毕后执行 flush
privileges;
刷新权限即可登录

限制MySQL数据库单个用户最大连接数等的方法 服务器上总有一些网站用户的连接数过大,而影响了其他的网站的正常使用,那么如何把某一条臭鱼限制在自己的一亩三分地呢下面我来说一下方法和原理: 1、对于Linux和Uinx *** 作系统需要找到myf或myini下载下来,编辑,可以把多余项去掉,加入: max_connections = 10 //表示将该用户限制为最大连接数10,但不要上传错地方哦! 当然对于其他的项目也可以加在下面,例如并发数、缓冲等,自己发挥吧! 4、将你改好的文件上传到用户的MySQL目录下,例如你建了一个数据库叫abc,你就把他传到abc下。 如此 *** 作就可以使臭鱼烂在自己锅里了,哈哈哈哈哈! 很天才吧~ 不过,还有一种更简单的方法,输入命令: mysql -u root -p 输入:GRANT ALL ON customer TO '数据库名'@'localhost' 输入:IDENTIFIED BY '数据库名' 输入:WITH MAX_USER_CONNECTIONS 4 (限制最大连接数) 输入:MAX_CONNECTIONS_PER_HOUR 1000; (限制每小时最大连接数) 也可以直接输入:GRANT ALL ON customer TO '数据库名'@'localhost' WITH MAX_USER_CONNECTIONS 4 MAX_CONNECTIONS_PER_HOUR 1000; 之后重启MySQL即可!

原因一:登录账号、密码、服务器名称、数据库名称登录错误导致不能连接,这个比较常见,仔细检查好所填信息是否正确,填写正确一般就可以解决。
解决方法:当正在使用的软件出现数据库不能连接时,一般就是服务器名出现问题,更改服务器名称一般可以解决问题。数据库如果是安装在本机,服务器名可以用“”或“(local)”来代替 ;如果是安装在局域网的其它计算机上,可以用IP地址作为服务器名。
原因二:如果没能正确安装SQL服务器,也会导致数据库连接不上;安装好数据库后,如果SQL服务管理器没有启动,则要去服务那里开启。
解决方法:如果是SQL数据库未能能成功安装,再次重新安装时,可能会无法安装,提示是存在一个未完成的安装挂起。解决就方法是:打开注册表编辑器,在HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession Manager中找到并删除PendingFileRenameOperations项目即可。
如果是更改了Windows的用户名或者密码,会导致SQL服务管理器不能启动,解决办法是去控制版面的服务那里修改启动。具体是:点击开始-->设置-->控制面板-->管理工具-->服务-->找到MS SQL SERVER服务-->在上面右键-->属性-->登陆-->修改启动服务的帐户和密码。
原因三:因权限问题导致数据库不能连接,解决方法是检测计算机的安全保护限制、SQL Server安全设置、 *** 作系统的安全限。
解决方法:可以先暂时关闭防火墙或者杀毒软件,看是否是这些软件的安全设置所导致。
SQL Server安全设置:打开企业管理器-->展开SQ L Server组-->右击服务器名-->点击属性-->在SQL Server属性-->安全性中,把“身份验证”选择为“在SQL Server和Windows”;
如果SQL服务器采用的是Windows XP系统,当工作站电脑出现不能连接数据库的情况时,可以在服务器和工作站各建立一个相同的WINDOWS用户账号和密码
原因四:引起原因:网络连接存在故障;
解决方法:检修网络是否存在故障。

我也有类似的问题,在网上寻找答案,我解决了,不知道楼主解决了问题没有。

可以这样做(我用的是SQL SERVER 2012):

在数据库的安全性找到该用户,右键选属性,然后点击成员身份,找到一系列的权限设置,选择中的两项打钩,具体的意思就是拒绝数据的读和写。确定后关闭,然后该用户就不能看到所有的表了。

修改: 不好意思 请忽略我的回答,我发现设置过后连视图都看不到了 我再想办法。

在实例管理页面删除用户。
1、登录云服务器游戏数据库控制台,在实例列表,单击实例ID或 *** 作列的管理,进入实例管理页面。
2、在实例管理页面,选择账号管理页,选择所需账号,在 *** 作列单击删除账号即可。


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

原文地址: http://outofmemory.cn/zz/13392578.html

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

发表评论

登录后才能评论

评论列表(0条)

保存