如何编写存储过程来进行用户登陆验证及用户操作验证

ILoveEagles 2005-10-17 12:00:45
我设想编写存储过程验证用户登陆信息,根据该用户角色的权限来控制用户对数据表及字段的访问,并返回相应的提示信息。不知那位有相关思路?
...全文
586 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wgsasd311 2005-10-17
  • 打赏
  • 举报
回复

如果你的验证用户登陆是指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:表示登录成功
$扫地僧$ 2005-10-17
  • 打赏
  • 举报
回复
存储过程验证用户登陆信息
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

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧