-1

我有两张这样的桌子

        usertable                                 RoleTable
-----------------------                     ---------------------------
   UserID|UserName|Pwd|RoleID                RoleID|RoleName
     1   |Anil    |123|1                       1   |Admin

我必须得到rolename用户名和密码匹配的时间,有人可以为此提供一个存储过程吗?

4

2 回答 2

1

您的方案可能存在一些问题:

  • 明文密码(您应该匹配加盐哈希,而不是实际密码)
  • 用户和角色之间的 1-1 关系(未来可扩展性不是很好)

假设您知道这些警告:

CREATE PROCEDURE GetRoleName

    @UserName VARCHAR(50), -- NVARCHAR if needed
    @Password VARCHAR(50)

AS

SELECT R.RoleName FROM [User] U 
INNER JOIN [Role] R ON R.RoleId = U.RoleId 
WHERE U.UserName = @UserName and U.Pwd = @Password;

GO
于 2012-07-10T06:09:11.750 回答
0

尝试以下查询:

 SELECT role.RoleName FROM usertable user JOIN RoleTabel role WHERE user.UserName=user_name AND user.Pwd=password;

您可以通过以下方式在存储过程中实现上述查询

    CREATE PROCEDURE proc_GetRoleName
          @username nvarchar(50),
          @password nvarchar(50) 
     AS 
     BEGIN 
       SELECT role.RoleName FROM usertable user JOIN RoleTabel role WHERE user.UserName=@username AND user.Pwd=@password ;
     END
于 2012-07-10T06:09:58.130 回答