-1

このようなテーブルが2つあります

        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 に答える