存储过程验证用户登陆信息  
CREATE PROCEDURE Temp_T(@User as varchar(100),@Pwr varchar(100))
as 
if Exists(select 1 from 登陆表 where User=@User and Pwr=@Pwr)
   RETURN  0
else
   RETURN  -1

解决方案 »

  1.   


    如果你的验证用户登陆是指SQL SERVER 的登录帐号,那么完全不用存储过程,SQL SERVER会在登录时自动识启动你设置的权限。
    如果是指你建的一个表里的帐号(用户帐号表)usr01,pwd01。
    a.先建一个普通帐号,用于判断用户名和密码是否正确
    b.为用户角色分类(对应到用户表的TYPE)建立不同的登录帐号,
    例如:type=0:表示表的所用者角色(db_owner),对应的帐号usr02 pwd02;
    type=1:表示只能对表查询操作(PUBLIC),对应的帐号usr03 pwd03;
    .....CREATE PROCEDURE right_user
    @Usr as varchar(20),--用户名
    @pwd varchar(20),--密码
    @stringconnect varchar(4000)=''
    as 
    declare @type int
    select @type=type  from 登陆表 where User=@Usr and Pwd=@Pwd
    if @type is null
    begin
       RAISERROR ('你输入的用户名或密码不对',16, 1)
       return -1
    end
    if @type=1
    begin
    set @stringconnect='driver={SQL Server};server=IP;uid=USR02;pwd=PWD02;database=DBNAME' 
    return 0
    end if @type=2
    begin
    set @stringconnect='driver={SQL Server};server=IP;uid=USR03;pwd=PWD03;database=DBNAME' 
    return 0
    end 
    ....go然后你程序调用此程储过程,
    得到返回的连接字符串变量stringconnect,重新连接数据库即可实现不同
    的登录用户有不同的对表操作权限。
    注明存储过程的返回-1:表示登录失败
    存储过程的返回0:表示登录成功