Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# sql server由其他用户创建登录名和用户_C#_.net_Sql_Sql Server_Sql Server 2005 - Fatal编程技术网

C# sql server由其他用户创建登录名和用户

C# sql server由其他用户创建登录名和用户,c#,.net,sql,sql-server,sql-server-2005,C#,.net,Sql,Sql Server,Sql Server 2005,我正在使用SQLServerExpress 2005。 我有一个数据库myDB 我已经在数据库myDB上创建了一个用户为U-1的登录名L-1 要连接数据库myDB,我找到了3种方法: -1(a)-在使用默认数据库=myDB创建L-1登录后,我必须创建一个用户U-1,当我连接到SQL server时,它将被连接 我使用了这个查询: create login L-1 with password='passL1' , default_database = myDB use myDB create

我正在使用SQLServerExpress 2005。 我有一个数据库myDB

我已经在数据库myDB上创建了一个用户为U-1的登录名L-1

要连接数据库myDB,我找到了3种方法:

-1(a)-在使用默认数据库=myDB创建L-1登录后,我必须创建一个用户U-1,当我连接到SQL server时,它将被连接

我使用了这个查询:

create login L-1 with password='passL1'  , default_database = myDB

use myDB

create user U-1 for login L-1 
这意味着,在登录名中创建用户时,会隐式授予用户连接权限。我说得对吗

-1(b)-我没有创建任何用户U-1,但执行了以下操作:

use myDB

sp_grantdbaccess L-1 
这也让我连接起来,原因是sql在myDB数据库中隐式添加了一个名为L-1的用户。我说得对吗

-1(c)-这一次,我没有创建任何用户U-1,但我执行了以下操作:

sp_changedbowner L-1  
这也让我连接起来,原因是sql在myDB数据库中隐式添加了一个名为L-1的用户。我说得对吗

现在,我想给在1(a)中创建的用户U-1以下权限:

  • 创建登录名L-2、L-3
  • 创建用户U2、U3,它们也可以连接到数据库myDB

  • 如何做到这一点?

    是-调用
    sp\u grantdbaccess
    sp\u changedbowner
    只会隐式执行您通常使用
    创建用户时所做的操作-没有区别

    显式调用
    CREATE USER
    只会更清晰,更清楚地知道您在做什么等等

    另外:不要再使用
    sp_grantdbaccess
    ,因为:

    此功能将在一段时间内删除 Microsoft SQL的未来版本 服务器。避免在中使用此功能 新的开发工作,并计划 修改当前使用的应用程序 这项功能。改用createuser

    资料来源:

    也不要使用sp_changedbowner-原因相同:

    此功能将在一段时间内删除 Microsoft SQL的未来版本 服务器。避免在中使用此功能 新的开发工作,并计划 修改当前使用的应用程序 这项功能。使用更改授权 相反


    来源:

    是-调用
    sp_grantdbaccess
    sp_changedbowner
    只会隐式执行您通常使用
    创建用户所做的操作
    -没有区别

    显式调用
    CREATE USER
    只会更清晰,更清楚地知道您在做什么等等

    另外:不要再使用
    sp_grantdbaccess
    ,因为:

    此功能将在一段时间内删除 Microsoft SQL的未来版本 服务器。避免在中使用此功能 新的开发工作,并计划 修改当前使用的应用程序 这项功能。改用createuser

    资料来源:

    也不要使用sp_changedbowner-原因相同:

    此功能将在一段时间内删除 Microsoft SQL的未来版本 服务器。避免在中使用此功能 新的开发工作,并计划 修改当前使用的应用程序 这项功能。使用更改授权 相反

    来源:

    @sqlchild:大多数情况下都非常清楚地列出了所需的权限。使用MSDN!!它会告诉你:要创建登录名,你必须拥有
    更改任何登录名
    权限-要创建或更新用户,你需要
    更改任何用户
    @sqlchild:大多数时候都非常清楚地列出了所需的权限。使用MSDN!!它将告诉您:要创建登录,您必须拥有
    更改任何登录
    权限-要创建或更新用户,您需要
    更改任何用户