附加数据库 权限不够

附加数据库 权限不够,第1张

目测显示的是用户"guest" 没有权限……

确认下你是用什么用户做的 *** 作?

1、在SQL Server 2005 Express 上附加从另外一台电脑Copy过来的数据库后,数据库为“只读”。

2、解决办法:打开 开始→程序→Microsoft SQL Server 2005→配置工具→SQL Server 配置管理器, 打开SQL Server SQLEXPRESS 的属性. 在内置帐号处,把“网络服务”改成“本地系统”,重新启动SQL Server 2005 Express 后,再附加数据库一切正常。

3、总结:之所以附加上的数据库为“只读”,是因为启动SQL Server 的默认的启动帐号“网络服务”对所附加(Attach)的数据库文件的权限不够造成的。

---

以上,希望对你有所帮助。

可以用phpMyAdmin通过输入语句的方法建立用户,或者一般的图形界面的SQL管理程序也可以建立和编辑用户.

这里只说使用GRANT语句的方法,当然还有直接修改MySQL表的方法,不过很麻烦,用的人不多~

前提是有MySQL root权限

例子:建立另一个超级用户(所有权限)的方法

GRANT ALL ON *.* TO username@localhost IDENTIFIED BY 'password' WITH GRANT OPTION

localhost是主机名,也可以是IP,用于限定这个用户是否可以远程连接.还可以用通配符"%",比如%.im286.com,或者202.97.224.%

*.* 中第一个星星是数据库名(*为所有数据库),第二个星星是表名(*为前面数据库下的所有表)

ALL 是指全部语句的 *** 作权限(经常看到虚拟主机等的用户没有DROP权限,就是这里做了手脚)

语法大概就是这样吧.

1

-- SQLServer:

一、 *** 作步骤

首先进入数据库级别的【安全性】-【登录名】-【新建登录名】

(图1:新建登录名)

2. 在【常规】选项卡中,如下图所示,创建登陆名,并设置默认的数据库。

(图2:设置选项)

3. 在【用户映射】选项卡中,如下图所示,勾选需要设置的数据库,并设置【架构】,点击【确认】按钮,完成创建用户的 *** 作

(图3:选择对应数据库)

4. 现在我们就可以对TestLog数据库中的User表进行权限的设置了,【表】-【 属性】

(图4:选择对应表)

5. 在【权限】选项卡中,如下图所示,依此点击【添加】-【浏览】-【选择对象】

(图5:设置访问表的用户)

6. 在上面点击【确认】后,我们就可以下面的列表中找到对应的权限,如果你还想细化到列的权限的话,右下角还有一个【列权限】的按钮可以进行设置,点击【确认】按钮就完成了这些权限的设置了

(图6:权限列表)

7. 现在就使用TestUser用户登陆数据库了,登陆后如下图所示,现在只能看到一个表了

(图7:效果)

二、注意事项

在上面的第3步骤中需要注意:如果这里没有选择对应的数据库的话,之后去TestLog数据库中是找不到TestUser。

(图8:找不到TestUser用户)

2. 在上面的第3步骤,设置完TestLog数据后,需要点击【确认】按钮,完成创建用户 *** 作,如果这个时候去设置【安全对象】,是无法在【添加】-【特定对象】-【对象类型】-【登陆名】-【浏览】中找到刚刚新建的TestUser用户的。

3. 其实在数据库级别的【安全性】创建的用户是属于全局的,当设置了某个数据库,比如TestLog之后,这个用户就会出现在这个数据库的【安全性】列表中。 如果删除TestLog这个用户,会出现下面的提示。删除了后,这个用户就无法登陆了。需要去对应的数据库中删除用户,如果没有删除又创建,是会报错的。

(图9:删除TestUser用户)

4. 在第6步的【显式权限】列表中,如果选择了【Control】这个选项,那么在【Select】中设置查询【列权限】就没有意义了,查询就不会受限制了。如果设置【列权限】,在正常情况下会显示下图的报错信息:

(图10:效果)

5. 在TestLog数据库的【安全性】-【TestUser】-【属性】-【安全对象】-【添加】-【对象类型】这里有更多关于数据库级别的一些对象类型可以设置。


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

原文地址: http://outofmemory.cn/sjk/6667363.html

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

发表评论

登录后才能评论

评论列表(0条)

保存