当前位置:首页 » 服务存储 » 存储过程写登录
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

存储过程写登录

发布时间: 2022-09-14 22:25:31

㈠ 如何用存储过程及sql代码创建登录,用户和角色

首先理解什么是登录,什么是用户,什么是角色:
登录:SQL Server2005中,有两种创建登录的方式:一种是Windows验证登录;另一种是SQL Server身份验证方式。“登录方式”就好比办公楼上使用不同类型的锁,一旦选择了使用什么类型的锁,就可以开始为每位员工配发钥匙,而这个钥匙就是“登录”。或称“登录名”,但员工只有进入大楼的权利,但却没有权限查看和使用里面的资源(比如档案柜)。如果是sysadmin或securityadmin固定服务器角色的成员,则可以创建两种类型的登录之一:标准登录(比如前面比喻中的金属钥匙)和Windows登录(比如较新型的电子出入卡)。
用户:既然员工拥有了进入大楼的钥匙,就应该拥有适当的管理性访问权,他们需要通过访问其他资源来完成工作。例如,如果打算允许财务部访问账目文件,就需要给他们一把文件柜的钥匙。员工现在有两把钥匙:一把是打开大门的钥匙,一把是打开文件柜的钥匙。
同样,一旦用户已登录到了SQL Server上,就需要允许用户访问数据库。为此,需要创建数据库用户账户,然后给这些用户账户授予权限。一旦这个过程结束,SQL Server用户就拥有了多把钥匙:一把打开大门的钥匙(登录),以及一把打开他们需要访问的每个文件柜(数据库)的钥匙。
角色:会计需要签发公司支票,这个权限可以用两种方式之一来授予。第一,可以给每名会计分别提供一本从同一账户中支取的支票簿,并授予从该支票簿中开支票的权限。在这种情况下,需要设法跟踪当月已经开出的全部支票,否则这种方法可能会造成可怕的后果。完成这项工作的最佳方法是让整个公司账户只使用一本支票簿,并给所有会计授予从这本支票簿中开支票的一个组权限。
在SQL Server中,当几个用户需要访问数据库的权限时,比较容易的方法是将所有的权限作为一个组授给他们,而不是设法分别管理每个用户。
言归正传,先用存储过程实现以上操作:
创建新登录具体语法请参考MSDN文档
--创建一个简单的登录,登录名为:newlogin;登录密码:123456;默认数据库:master,默认数据库也可以不指定。
EXEC sp_addlogin 'newlogin','123456','master'
--创建用户
--创建一个简单的用户,如果不指定用户名,则添加到当前数据库登录名中,如果不指定角色,则该用户默认属于public角色。下为添加newlogin登录名。
EXEC sp_adser 'newlogin'
--创建一个带用户名的用户,用户可以与登录名相同(同上一种类似),也可以不同,但要设定当前登录名,用户角色可选,默认为public。下为将用户newuser添加到newlogin登录名中。
EXEC sp_adser 'newlogin','newuser'
--创建角色
EXEC sp_addrole 'newrole'
--下为将用户下为将用户newuser添加到newlogin登录名中。并指定newrole角色。
EXEC sp_adser 'newlogin','newuser','newrole'
--为角色newrole赋予jobs表的所有权限
GRANT ALL ON jobs TO newrole
--为角色newrole赋予sales表的查、改权限
GRANT SELECT,UPDATE ON sales TO newrole
--禁止角色newrole使用employees表的插入权限
DENY INSERT ON employees TO newrole

另一种创建用户和赋予角色的方式
--为登录newlogin在数据库中添加安全账户newuser
EXEC sp_grantdbaccess 'newlogin,'newuser'
--添加newuser为角色newrole的成员
EXEC sp_addrolemember 'newrole','newuser'

--数据库用户、角色、登录的删除操作
--删除当前数据库用户
EXEC sp_revokedbaccess 'newuser';
--删除数据库登录
EXEC sp_droplogin 'newlogin'
--删除数据库角色
EXEC sp_droprole 'newrole'
--从数据库角色(newrole)中删除用户(newuser)
EXEC sp_droprolemember 'newrole', 'newuser'
--用SQL代码新建登录、用户
--创建带密码的mylogin登录名,MUST_CHANGE 选项需要用户首次连接服务器时更改此密码。
CREATE LOGIN mylogin WITH PASSWORD = '123456' MUST_CHANGE;
--创建映射到凭据的登录名。
--以下示例将创建mylogin登录名。此登录名将映射到mycredential凭据。
CREATE LOGIN mylogin WITH PASSWORD = '123456',
CREDENTIAL = mycredential;
--从Windows 域帐户创建登录名
--如果从Windows 域帐户映射登录名,则登录名必须用方括号([ ]) 括起来。
CREATE LOGIN [jack/xiangzhao] FROM WINDOWS;
--如果指定用户名,则不使用默认登录名作为该数据库用户
CREATE USER myuser FOR LOGIN mylogin
--以下示例将创建用户myuser拥有的数据库角色myrole
CREATE ROLE myrole AUTHORIZATION myuser;
--以下示例将创建db_role固定数据库角色拥有的数据库角色myrole
CREATE ROLE myrole AUTHORIZATION db_role;

㈡ oracle数据库 写一个用户登录注册的存储过程, 应该怎么写

Oracle存储过程基本语法:

1
2
3
4
5

CREATE OR REPLACE PROCEDURE 存储过程名
IS
BEGIN
NULL;
END;

解释:
行1: CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它; 行2: IS关键词表明后面将跟随一个PL/SQL体。 行3: BEGIN关键词表明PL/SQL体的开始。 行4: NULL PL/SQL语句表明什么事都不做,这句不能删去,因为PL/SQL体中至少需要有一句; 行5: END关键词表明PL/SQL体的结束。

㈢ 你好 如何用存储过程 在asp.net写登录

只是把语句换成存储过程名,其他的地方是一样的。在存储过程里面判断一下登录信息是否正确,正确的返回1,在asp.net 后台判断这个返回值即可。。
using (SqlConnection con = new SqlConnection(srcConnString))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.Connection = con;
cmd.CommandType = CommandType.StoredProcere;
cmd.CommandText = "存储过程名";
cmd.Parameters.Add("@参数名", SqlDbType.VarChar).Value = "参数值";
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
if (dr["result"].ToString() == "1")
{
//这里写你的登录操作
}}}}

㈣ 求ASP.NET极为简单代码:如何用存储过程实现登录的代码

SqlConnection conn=new SqlConnection("连接字符串");
SqlCommand cmd=new SqlCommand();
cmd.CommandText=checklogin;
cmd.CommandType=CommandType.StoredProcere;
cmd.Connection=conn;
string strName=this.TextBox1.Text;
string strPwd=this.TextBox2.Text;
SqlParameters[] pa={new SqlParameters("@name",strName),new SqlParameters("@pwd",strPwd)};
cmd.Parameters.AddRange(pa);
conn.Open();
DataReader dr=new DataReader(cmd);
if(dr.Read())
{Reponse.Redirect("");}
else
{}
conn.Close();
////////////////不知道对不对,大体流程就这样,你自己检测一下吧

㈤ 求高手帮帮忙,没分了,给不了!麻烦给位了! asp.net (c#)中怎么利用存储过程实现登录

if (!(ds.Tables.Count<0))
判断语句有问题

改成 if (!(ds.Tables[0].Rows.Count<0))
试一下

有困难HI我

㈥ 登录: 该怎么写 SQL存储过程语句, 手机 ,邮箱 ,帐号都可以登录 不知道怎么写语句

create procere Login
(
@dengluming varchar(100)
)
as
if exists (select 1 from 用户表 where 手机=@dengluming or 邮箱=@dengluming or 帐号=@dengluming)
begin
return ture;
end
else
begin
return false;
end

㈦ 关于用存储过程实现用户登录的问题

if (result.Value==0)
{
Response.Write("<script>alert('登录成功')</script>");
}
else if (result.Value==1)
{
Response.Write("<script>alert('密码错误')</script>");
}
else
{
Response.Write("<script>alert('用户名不存在')</script>");
}
这样不行吗??

㈧ oracle中登录的存储过程例子

create or replace procere usp_login(i_name varchar,i_pwd varchar,o_infocode out number,o_infotext out varchar)
is
v_cnt int;
begin
select count(*) into v_cnt from usertable where username=v_name;
if v_cnt = 0 then
o_infocode:=11;
o_infotext:='用户不存在';
return;
end if;
select count(*) into v_cnt from usertable where username=v_name and userpwd=v_pwd;
if v_cnt = 0 then
o_infocode:=12;
o_infotext:='密码不正确!';
return;
else
o_infocode:=0;
o_infotext:='登陆成功!';
end if;
return;

end;

㈨ 如何用pl/sql编程实现用户登录采用存储过程

用以下的方式可以监控登入登出的用户:
建如下的两张表:
create table login_log -- 登入登出信息表
(
session_id int not null, -- sessionid
login_on_time date, -- 登录时间
login_off_time date, -- 退出时间
user_in_db varchar2(30), -- 登入的db user
machine varchar2(20), -- 机器名
ip_address varchar2(20), -- ip地址
run_program varchar2(20) -- 以何程序登入
);

create table allow_user -- 网络用户表
(
ip_address varchar2(20), -- ip地址
login_user_name nvarchar2(20) -- 操作者姓名
);

创建建如下的两个触发器:
create or replace trigger login_on_info -- 登入信息的trigger
after logon on database
Begin
insert into login_log(session_id,login_on_time,login_off_time,user_in_db,machine,ip_address,run_program)
select AUDSID,sysdate,null,sys.login_user,machine,SYS_CONTEXT('USERENV','IP_ADDRESS'),program
from v$session where AUDSID = USERENV('SESSIONID'); --当前SESSION
END;

create or replace trigger login_off_info --登出信息的触发器
before logoff on database
Begin
update login_log set login_off_time = sysdate
where session_id = USERENV('SESSIONID'); --当前SESSION
exception
when others then
null;
END;

㈩ 三层结构中,如何用存储过程来设计用户登录.

数据库是Sql
Server7,想用存储过程来设计用户登录,不知如何将客户端的用户名和密码传递到服务端,若登录失败如何将信息反馈回给用户?