如何用程序控制在SQL SERVER2000中添加用户
程序语言可以是c#,vb,vb.net
谢谢啦
小弟现在比较穷先给50分

解决方案 »

  1.   

    没做过,写好SqlCommand对master操作不可以吗
      

  2.   

    http://www.cnblogs.com/ccboy/articles/5767.html
      

  3.   

    首先你必须能够登陆联接master库,可能使用其存储过程sp_addlogin来添加用户.示例
    A. 创建没有密码和主默认数据库的登录 ID
    下面的示例为用户 Victoria 创建一个 SQL Server 登录名,没有指定密码或默认数据库。EXEC sp_addlogin 'Victoria'B. 创建登录 ID 和默认数据库
    此示例为用户 Albert 创建一个 SQL Server 登录,并指定密码 food 以及名为 corporate 的默认数据库。EXEC sp_addlogin 'Albert', 'food', 'corporate'C.创建使用其它默认语言的登录 ID
    下面的示例为用户 Claire Picard 创建一个 SQL Server 登录名,密码为"caniche",默认数据库为 public_db,默认语言为 French。EXEC sp_addlogin 'Claire Picard', 'caniche', 'public_db', 'french'D. 创建带有特定 SID 的登录 ID
    下面的示例为用户 Michael 创建一个 SQL Server 登录名,密码为"chocolate",默认数据库为 pubs,默认语言为 us_english,SID 为 0x0123456789ABCDEF0123456789ABCDEF。EXEC sp_addlogin 'Michael', 'chocolate', 'pubs', 'us_english', 0x0123456789ABCDEF0123456789ABCDEFE. 创建登录 ID 并且不加密密码
    下例在 Server1 上为用户 Margaret 创建了一个密码为"Rose"的 SQL Server 登录,再析取此加密密码,然后使用前面加密的密码将用户登录 Margaret 添加到 Server2,但不对此密码进一步加密。之后,用户 Margaret 即可使用密码"Rose"登录到 Server2。-- Server1
    EXEC sp_addlogin Margaret, Rose--Results
    New login created.-- Extract encrypted password for Margaret
    SELECT CONVERT(VARBINARY(32), password)
       FROM syslogins 
       WHERE name = 'Margaret'--Results
    ------------------------------------------------------------------ 
    0x2131214A212B57304F5A552A3D513453(1 row(s) affected)-- Server2
    EXEC sp_addlogin 'Margaret', 0x2131214A212B57304F5A552A3D513453, 
       @encryptopt = 'skip_encryption'
      

  4.   

    如果是添加当前库用户就用这个存储过程就可以了
    sp_adduser
    为当前数据库中的新用户添加安全帐户。包括此过程是为了向后兼容。请使用 sp_grantdbaccess。语法
    sp_adduser [ @loginame = ] 'login'
        [ , [ @name_in_db = ] 'user' ]
        [ , [ @grpname = ] 'group' ]参数
    [@loginame =] 'login'用户的登录名称。login 的数据类型是 sysname,没有默认值。login 必须是现有 Microsoft® SQL Server™ 登录或 Microsoft Windows NT® 用户。[@name_in_db =] 'user'新用户的名称。user 的数据类型为 sysname,其默认值为 NULL。如果没有指定 user,则用户的名称默认为 login 名称。指定 user 即为新用户在数据库中给予一个不同于 SQL Server 上的登录 ID 的名称。[@grpname =] 'group'组或角色,新用户自动地成为其成员。group 的数据类型为 sysname,默认值为 NULL。group 必须是当前数据库中有效的组或角色。Microsoft SQL Server 7.0 使用角色而不是组。返回代码值
    0(成功)或 1(失败)注释
    SQL Server 用户名可以包含 1 到 128 个字符,包括字母、符号和数字。但是,用户名不能: 含有反斜线符号 (\)。
    为 NULL,或为空字符串 ('')。 
    在添加完用户之后,可以使用 GRANT、DENY 和 REVOKE 语句来定义权限,这些权限控制着用户进行的活动。使用 sp_helplogin 可显示有效登录名的列表。使用 sp_helprole 可显示有效角色名的列表。当指定一个角色时,用户会自动地获得为该角色定义的那些权限。如果没有指定角色,则用户获得的权限将是授予默认 public 角色的权限。若要将用户添加到角色,必须提供 username 的值(username 可与 login_id 相同)。为了访问数据库,必须使用 sp_adduser 或 sp_grantdbaccess 对登录授予访问权,或者数据库中必须存在 guest 安全帐户。不能在用户定义的事务内执行 sp_adduser。权限
    只有 sysadmin 固定服务器角色的 dbo 和成员才能执行 sp_adduser。示例
    A. 添加用户
    下面的示例使用现有的登录 Victoria,将用户 Victoria 添加到当前数据库中现有的 fort_mudge 角色中。EXEC sp_adduser 'Victoria', 'Victoria', 'fort_mudge'B. 添加用户名(使用相同的登录 ID)
    下面的示例为登录 Margaret 将默认用户名 Margaret 添加到当前数据库,该用户名属于默认的 public 角色。EXEC sp_adduser 'Margaret'C. 添加用户(使用不同的用户名)
    下面的示例将 Haroldq 登录添加到当前的数据库中并使用 Harold 用户名,该用户名属于 fort_mudge 角色。EXEC sp_adduser 'Haroldq', 'Harold', 'fort_mudge'
      

  5.   

    按 chsfly(一蓑烟雨任平生) ( )  说的作就可以了。
      

  6.   

    谢谢  chsfly(一蓑烟雨任平生) 了!
    大家还有指教吗?要不我就要给分,结贴了