• [译]几个步骤来删除SQL Server数据库用户


    数据库的安全是大多数数据库管理者的重大问题之一。数据库管理者经常恢复或备份数据库,这是一个很常见的场景,但事实是,成功地恢复你的数据库的新版本后,你要删除当前用户。 也许你以为只是扩大用户节点和删除的欲望用户,在这个意义上说,你是有点正确。 但是,如果你面对这样的错误:


    Msg 15421, Level 16, State 1, Line 1
    The database principal owns a database role and cannot be dropped.

    这个时候你会怎么做?

    Microsoft SQL Server提供了很多相当多的方式来维护数据库的安全。 这篇文章是不是微软SQL服务器的安全。

    在这篇文章中,我将试图解释如何解决好以下几个问题:

    1. 数据库主体拥有数据库的作用,不能被丢弃。
    2. 数据库主体拥有一个模式,不能删除。
    解决方案


    我尝试分为两节,节;我们将讨论,找出其中存在的用户和部分乙角色的列表,我们将讨论如何解决它。


    第 一
    在本节中,我们的首要目标是要找出我们的目标数据库中现有的角色列表。 为此,我们用一个简单的Transact - SQL的SQL Server的SYS.DATABASE_PRINCIPALS SYS.DATABASE_PRINCIPALS表。 下面列出了一个示例SQL脚本和所需的步骤(S):


    打开SQL Server Management Studio中,作为一个管理员用户登录。
    选择数据库,设置用户名和获取数据库角色和用户详细的执行以下Transact - SQL

    示例SQL脚本

    SELECT     DBPRINCIPAL_1.NAME AS ROLE, DBPRINCIPAL_1.NAME AS OWNER
    FROM         SYS.DATABASE_PRINCIPALS AS DBPRINCIPAL_1 INNER JOIN
                     SYS.DATABASE_PRINCIPALS AS DBPRINCIPAL_2 
    		    ON DBPRINCIPAL_1.PRINCIPAL_ID = DBPRINCIPAL_2.OWNING_PRINCIPAL_ID
    WHERE     (DBPRINCIPAL_1.NAME = 'User Name To Remove')  

    在SYS.DATABASE_PRINCIPALS “表可以发现在这个环节


    第二:

    我认为这不是一个非常复杂的任务,让我们开始的,您的SQL Server Management Studio中是开放的,你作为一个管理员用户,即“SA”登录。

    从第一个我们已经得到的清单,现在的任务是清除所需的用户。 要做到这一点,我们需要按照下面列出的步骤(S):

    1. 现在展开“数据库”对象资源管理器的节点。
      1. 选择目标数据库>>--->安全>>-->角色>>-->数据库角色。
      2. 现在双击上面的SQL命令的输出中列出的条目。
      3. 改变“所有者”的一些临时用户名。
      4. 如果你要删除的用户名出现在对话框中,选择并删除它从那里也。 
        (所有的角色,在上面的SQL查询。)
    2. 导航到数据库>>--> >>-->目标数据库的安全>>-->架构。
      1. 双击打开“的db_owner”和改变架构的所有者为dbo。
    3. 现在去:数据库>>-->目标数据库>>-->安全>>-->用户。
    4. 右键单击要删除的用户名,点击“删除”,然后在新出现的对话框中单击“确定”。

     :在完成上述步骤(S)- B节第4步除外后,您也可以尝试在sp_dropuser过程sp_dropuser。


    例子:

    EXEC sp_dropuser'用户名' 

    原文http://www.codeproject.com/KB/database/DropDBUser.aspx



    作者:qq283868910 发表于2011-12-13 8:51:52 原文链接
    阅读:35 评论:0 查看评论
  • 相关阅读:
    想学数据库的进来领课程了哈.....
    天轰穿C# vs2010 04面向对象的编程之密封【原创】
    天轰穿C#vs2010 04面向对象的编程之访问数组 【原创】
    天轰穿C#vs201004面向对象的编程之foreach循环【原创】
    天轰穿C# vs2010 04面向对象的编程之继承【原创】
    【IT职业规划】天轰穿教你如何选择和学习编程
    天轰穿C# vs2010 04面向对象的编程之简单数组 【原创】
    关闭任务计划程序前您必须关闭所有会话框的解决方法
    用树莓派实现会说话的汤姆猫
    备忘录:关于.net程序连接Oracle数据库
  • 原文地址:https://www.cnblogs.com/SpeakHero/p/2431303.html
Copyright © 2020-2023  润新知