繁體 | 免费注册 | 会员登陆 | 客户支持 | 交费方式 | 联系我们
QQ 咨询 :1234567   联系电话:0000-000000
  首页 网站建设 特价优惠 域名注册 云虚拟主机 魔方主机 企业邮局 服务器 云主机 400电话 企业短信 代理加盟  

关于 SQL Server 没有 dbo 权限的问题

发布时间:2008-11-26 10:25:09   浏览人数: 477521 次  

关于 sql server 数据库查询数据或执行存储过程时,出现类似 "没有dbo权限"、"找不到 dbo.XXX 对象"等的解决方法

1. 出现这个问题的原因是因为当前连接数据库的登录用户不是 dbo 权限,所以此用户不能操作所有者为 dbo 的对象。为什么不开放 dbo 权限:因为如果客户的程序有问题(比如有注入漏洞)、或数据库密码泄漏等,如果当前用户有 dbo 权限的话,会给数据库服务器带来安全隐患,所以我司的数据库都不开放 dbo 权限,而我们给用户开放了datareader、datawriter、ddladmin 等权限,这些权限一般情况下是足够的。

2. 用户在初始化数据的时候,比如通过企业管理器执行导入数据的 SQL ,或通过某些网站安装程序初始化的时候,这些原始的初始化数据中的对象所有者可能是 dbo ,这将会导致在初始化数据后,数据库的当前登录用户没有权限操作这些对象。

3. 对于以上问题,解决方法如下:
  1. 在您对数据库的结构进行了更改后,要注意数据库对象(如数据表、存储过程等)的所有者应该是您的数据库用户名,而不是 dbo ,如果您发现有某些对象的所有者是 dbo ,这时您应该登录我司的数据库控制面板,然后找到“修复对象所有者”的按钮,点击一下就可以将所有对象的所有者设置为您的当前登录用户。
  (注意:系统表、系统存储过程 等不用处理,只有自己建立的表、存储过程、视图等才要处理)
4. 在您的程序中,要注意以下方面
  在查询、更新、删除数据,执行存储过程等一切操作中,不要使用 "dbo.表名"、"dbo.存储过程名" 等进行操作,
  而改为直接用 "表名"、"存储过程"名等进行操作,就是不要带有对象所有者的部分,如:
  select * from dbo.table1 应该改为 select * from table1
  更多请做类似修改~



上一篇:美国虚拟主机导购!!
下一篇:滥用on error resume next造成的空间被停用
Copyright 2008-2014 l临沂户外营网络有限公司 All Rights Reserved
咨询电话:0539--8036620客服专线:13853958489代理咨询:13013528608 技术专线:18660916318 企业邮箱admin@8fwl.com
 QQ客服:396515968 [业务客服]   980568535 [技术客服]  旺旺客服:  空间代理lyxqt 技术支持诚信是金968
公司地址:山东省临沂市小商品城 邮政编码:276000
旗下主机品牌:新数据、信数据、欣数据、莘数据、鑫数据、盺数据、馨数据
主机代理,空间代理,域名空间代理,虚拟主机代理,域名主机代理,虚拟空间代理,香港空间代理,美国空间代理,免费虚拟主机代理,虚拟主机代理
注1:我司所有空间即开即用,全自助服务即可正常使用,请开通之前认真阅读我司站上相关帮助文档、通知、公告、产品描述等,实在不知情况下请联系客服。
注2:我司反对一切不符合服务器所在地法律法规的行为与内容,同时所有在我司的会员信息必须是真实,一经发现不符合规定的一律暂停服务,余额不予退还。
注3:我司所有空间禁放MP3,电影,BT,六合彩,法轮功,外挂,私服,色情,假币,毒品,钓鱼等大流量下载与违法类网站,一经发现,我司有权关闭站点,余额不予退还。
以下js为测试信息