手机版

修改SQLSERVER中对象模式为dbo的方法

时间:2021-08-05 来源:互联网 编辑:宝哥软件园 浏览:

类型:数据库类大小:594KB语言:中文评分:7.7标签:立即下载SQL2005比SQL2000更难使用,登录名、用户、模式、角色、权限都是重复的,但这种关系不清楚。远程连接SQL2000创建的存储过程以前在服务器上的数据库中使用过,现在是本地下载的,当时所有的存储过程所有者都不是dbo。安全用户中有dbo,默认模式为dbo,登录名为sa,dbo具有dbowner权限。我以为这样用sa创建adodb连接对象,数据库的所有对象都可以操作,没想到执行上一个存储过程时提示:

找不到odbc驱动程序' 80040 e 14 '[Microsoft][odbc SQL server驱动程序] [SQL server]存储过程' Proc_WebCount '的Microsoft ole db提供程序中的错误。突然之间,默认sa是dbowner权限。怎么会没有执行权呢?重复设置dbo权限、架构、原所有者结构和权限账户,无法将当前所有者与dbo连接。最后,在检查了一些数据之后,我终于找到了修改数据库中每个对象的所有者的方法。修改后可以直接使用。用SA登录还是挺方便的。使用要选择的数据库,然后执行以下SQL语句:-创建游标。查询其所有者为NiunvDB的记录声明csr1游标为select' name'=来自sysobjects的名称,其中user _ name (uid)=' niunvdb '按名称排序打开cs R1-循环读取游标记录。执行系统存储过程SP_ChangeObjectOwner,将csr1中的对象所有者fetch next修改为@ name,同时(@ @ fetch _ status=0)开始设置@ name=' niunvdb '@ name exec sp _ changeobjectowner @ name,' dbo' fetch next从csr1进入@ name end close csr1解除分配csr1执行后,您可以看到更改对象名称的任何部分都可能会破坏脚本和存储过程。警告:更改对象名称的任何部分都可能会破坏脚本和存储过程。警告:更改对象名称的任何部分都可能会破坏脚本和存储过程。警告:更改对象名称的任何部分都可能会破坏脚本和存储过程。警告:更改对象名称的任何部分都可能会破坏脚本和存储过程。警告:更改对象名称的任何部分都可能会破坏脚本和存储过程。警告:更改对象名称的任何部分都可能会破坏脚本和存储过程。警告:更改对象名称的任何部分都可能会破坏脚本和存储过程。警告:更改对象名称的任何部分都可能会破坏脚本和存储过程。警告:更改对象名称的任何部分都可能会破坏脚本和存储过程。警告:更改对象名称的任何部分都可能会破坏脚本和存储过程。警告:更改对象名称的任何部分都可能会破坏脚本和存储过程。也就是说,满足查询条件的所有对象的所有者都已更改为所需的所有者名称。然后刷新数据库对象,可以看到原来的NiunvDB开头的所有存储过程都变成了dbo。存储过程名称.sysobjects表存储相应数据库的对象数据,包括表、默认值、主键和存储过程,其中类型字段指示对象类型。大致含义如下:p3360存储过程U:用户表K:主键D:有几种类型的默认值,这不能弄清楚它们的含义,但这些应该足够了。要查找表信息,还可以使用select * from information _ schema . tables查找所有对应数据库中的表数据。列可以检查所有表的列数据。视图可以检查所有视图数据sp _ changedbowner ' sa '可以直接更改当前数据库的所有者

版权声明:修改SQLSERVER中对象模式为dbo的方法是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。