你没有增加该用户
先要SP_ADDUSER
再给权

解决方案 »

  1.   

    TO run (一路狂奔): 
    要在同时刷新登录和所有数据库用户。
    在你这个例子中,要刷新登录和mydb数据库中的用户。你只刷新登录,当然出错了。TO OpenVMS(半知半解):
    已用sp_grantdbaccess用户,sp_adduser是版本6.5或以下用的,7.0或以上请sp_grantdbaccess。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 使用角色而不是组。
      

  2.   

    TO run (一路狂奔): 
    要同时刷新登录和所有新增的数据库用户。
    在你这个例子中,要刷新登录和mydb数据库中的用户。你只刷新登录,当然出错了。企业管理器重新连接数据库,登录和所有数据库用户都会刷新,就不会出错了。TO OpenVMS(半知半解):
    已用sp_grantdbaccess增加用户,sp_adduser是6.5或以下用的,7.0或以上请sp_grantdbaccess。
      

  3.   

    把这个EXEC sp_addrolemember 'db_owner',@username
    改成sp_addsrvrolemember @username,'sysadmin',然后放到最前面看看
      

  4.   

    我在MS SQL Server 2000  经过测试,找到了原因,并找到了解决方法。要同时刷新登录和所有新增的数据库用户。
    在这个例子中,要刷新登录和mydb数据库中的用户。你只刷新登录,当然出错了。你不用重新连接数据库,先刷新登录,再刷新mydb数据库中的用户,在企业管理中删除登录就不会出错了。另外,企业管理器重新连接数据库,登录和所有数据库用户都会刷新,就不会出错了。
      

  5.   

    hehe,原来是这样。我还以为这样创建的用户有问题,代码都不敢给别人用了。
    谢谢各位。