代码之家  ›  专栏  ›  技术社区  ›  WestDiscGolf

Sql server执行权限;应用权限失败

  •  6
  • WestDiscGolf  · 技术社区  · 15 年前

    我刚刚从SQL2000迁移到SQL2008,我开始在一个使用sp\uOAcreate的存储过程上遇到执行权限问题。

    系统的其余部分可以很好地使用db登录,db登录已经设置好并添加到数据库中。

    我试过:

    USE master
    GO
    GRANT EXEC ON sp_OACreate TO [dbuser]
    GO
    

    找不到用户“dbuser”,因为 它不存在或者你没有

    我以sa身份以完全权限登录服务器。我可以执行类似的sql语句,并将权限应用于服务器角色,但不是登录/用户。

    5 回复  |  直到 15 年前
        1
  •  6
  •   WestDiscGolf    15 年前

    从John的回答开始,我检查了主数据库上的用户列表,但我的用户不在那里。我不知道它是被删除了还是丢失了。将dbs迁移到新的服务器实例时,可能出现了一些问题。

    无论如何;重新创建用户并将其与特定登录名关联,使我能够在主数据库上运行以下语句,以允许执行存储过程。

    USE MASTER
    GO
    
    GRANT EXECUTE ON [sys].[sp_OADestroy] TO [dbuser]
    GO
    GRANT EXECUTE ON [sys].[sp_OACreate] TO [dbuser]
    GO
    GRANT EXECUTE ON [sys].[sp_OAMethod] TO [dbuser]
    GO
    GRANT EXECUTE ON [sys].[sp_OASetProperty] TO [dbuser]
    GO
    

        2
  •  6
  •   John Sansom    15 年前

    您可以使用以下T-SQL进行检查

    USE MASTER;
    GO
    
    SELECT *
    FROM sys.sysusers
    WHERE name = 'dbuser'
    

    CREATE USER 语句并创建一个名为“dbuser”的用户。如果存在同名登录,则用户将自动映射到同名登录。

        3
  •  2
  •   Chris Bednarski    15 年前

    您的问题可能与孤立用户有关。

    尝试

    USE MASTER
    GO
    EXEC sp_change_users_login 'Report'
    

    这将为每个孤立用户名返回一行。那么,

    EXEC sp_change_users_login 'Update_One', 'dbuser', 'dbuser'
    
        4
  •  2
  •   Robert Calhoun    13 年前

    下面是我正在使用的验证(当前用户)对sp\u OACreate等具有执行权限的代码:

    use master;
    select state_desc,name from
    sys.database_permissions a
    left join
    sys.all_objects b
    on a.major_id = b.object_id
    where name like 'sp_OA%';
    

    use Master 是必需的。如果用户有执行权限,上面的查询将返回记录;如果没有,则返回空集(在用户数据库中执行也将返回空集。)

    fn_my_permissions

        5
  •  1
  •   Thea Ray Suelzer    15 年前

    Security -> Logins -> Select User "User Mapping" 从右菜单。现在检查您希望给定用户有权访问的数据库。之后,从窗口的底部选择“DatabaseRoleMembership”并选中 "db_owner"

    更新:
    通过选择数据库为数据库添加用户->安全性->用户->右击 "New User"

    CREATE LOGIN AbolrousHazem 
        WITH PASSWORD = '340$Uuxwp7Mcxo7Khy';
    USE AdventureWorks2008R2;
    CREATE USER AbolrousHazem FOR LOGIN AbolrousHazem;
    GO 
    

    这里有更多的细节 http://msdn.microsoft.com/en-us/library/ms173463.aspx