存储过程验证用户登陆信息
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
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
解决方案 »
- sql汇总代码!
- 一条超简单的select,送分
- sqlserver 安装起来,企业管理器有异常,新建表就提示错误
- 客戶端連接的問題
- java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]End of stream was detected on a read
- 找一条优化的SQL语句....
- 救人一命胜造七级浮屠~ 谢谢大家了!!
- 怎么用SQL语句将生成的结果集添加到表中
- 写一个存储过程,输入一个表名(tb_1 或 tb_2) 返回表中最大ID +_+_+_+_+_高分的喔
- 查询当前用户一段时间内的推荐人数
- 怎樣來查詢我所要的記錄,有關員工請假記錄的查詢---------請各位高手指教,謝謝!
- 子陌红尘等各位老大,进来看看哈!
如果你的验证用户登陆是指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:表示登录成功