sql server可以附加数据库,但数据库中的表拒绝访问

sql server可以附加数据库,但数据库中的表拒绝访问,第1张

这个是权限问题。

二、 *** 作步骤

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

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

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

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

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

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

这是正常的。

当你数据库中存在数据库A时,需要附加数据库A2(为数据库A1的不同数据版本),由于附加数据库的名称一样是A,所以附加数据就会失败。

将数据库中A的名字改成另外一个,然后再附加数据库A。尝试一下是否数据库A附加成功。在附加为这个地方的时候,将名称修改一下,尝试能否修改成功。

解决方法步骤如下:

1、首先打开sqlserver management studio,登录身份选择windows身份验证,点击连接。

2、进入管理器中,选择数据库,右键,在d出的菜单选择“附加”,如图所示,选择要附加的文件后,点击附加,如果没有报错,则完成附加,否则,需要接下来的数据修复。

3、报错,附加失败后,新建数据库,且要与要附加的数据库同名。如要附加的数据库为skhprint,要新建的数据库名也要命名为skhprint,如图,点击确定,完成数据库创建。

4、如何在界面内找到“停止”选项并单击停止数据库。

5、将原mdf文件,如skhprint.mdf复制到新创建的数据库所在目录中,之后,开启服务器。

6、这时,会发现skhprint质疑,接下来要打开查询分析器,输入如下代码:use mastergo--declare @databaseName varchar(50)--set @databaseName='skhprint'--1修改服务器设置:允许对系统目录进行直接修改

sp_configure 'allow updates',1 reconfigure with overridego--2将数据库置为紧急状态update master.dbo.sysdatabases set status = 32768 where name = 'skhprint'go--3删除新的ldf文件,重建日志:dbcc rebuild_log('skhprint', 'f:\skhprint_log_new.ldf')--假设把新日志在f盘goupdate master.dbo.sysdatabases set status = 16 where name = 'skhprint'即可。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存