Wrox Home  
Search P2P Archive for: Go

  Return to Index  

asp_databases thread: stored procedures


Message #1 by "Eric Van Camp" <eric.vancamp@c...> on Fri, 27 Oct 2000 01:27:15 +0100
I know it is not common to insert not wrox issues here but i want to add

security to my site and use several stored procedures...

---

(No, these lists are for everyone, not just Wrox book buyers - moderator)

---

i run a script for one of my stored proceduyres but i get an "invalid"

object sp_checklogin error in i-sql when i run the script



the error is:

Msg 208, Level 16, State 2

Invalid object name 'sp_checklogin'.



the code  to generate the stored procedure is as follows:







/***************************************************************************

******

*  Table : sp_checklogin

*

*  Desc  : Checks Valid Login

*

****************************************************************************

*****/

CREATE PROCEDURE sp_checklogin

(

 	@SessionID				VARCHAR(40),

 	@Level					VARCHAR(10)

 	/* Allowed Rights

 		GENERAL

 		REPORT

 		ADMIN

 		SYSADMIN */

)

AS

 	DECLARE @CoyID			VARCHAR(20)

 	DECLARE @UserID			VARCHAR(20)

 	DECLARE @AccessNumber		TINYINT

 	DECLARE @Timeout		INT

 	DECLARE @UserState		TINYINT

 	DECLARE @CoyStatus		TINYINT

 	DECLARE @Rights			INT



  /* Check Session Exists */

  IF NOT EXISTS (SELECT SessionID FROM USERLOG WHERE SessionID=@SessionID)

    BEGIN

      SELECT Progress=1,Errormsg="Session does Not Exist."

      RETURN

    END



  /* Check Session Details if Session Still Valid */

  SELECT

@CoyID=CoyID,@UserID=UserID,@AccessNumber=AccessNumber,@Timeout=DATEDIFF(MIN

UTE,Accessdt,GETDATE()),@UserState=UserState FROM USERLOG WHERE

SessionID=@SessionID

  IF NOT (@UserState = 0)

    BEGIN

      SELECT Progress=1,Errormsg="Session has already ended."

      RETURN

    END



  /* Check Session Details if Session Timed Out */

  IF @Timeout >= 30

    BEGIN

      /* Mark Session as Timed Out */

      UPDATE USERLOG SET UserState=2 WHERE SessionID=@SessionID

      SELECT Progress=1,Errormsg="Session has already timed out."

      RETURN

    END



  /* Check Company Privileges */

  SELECT @CoyStatus=Status FROM COMPANY WHERE CoyID=@CoyID

  IF (@CoyStatus=0)

    BEGIN

      SELECT Progress=1,Errormsg="Company In Disabled Mode."

      RETURN

    END



  /* Admin User */

  IF (@UserID = "MASTER")

    BEGIN

      SELECT @AccessNumber = @AccessNumber + 1

      UPDATE USERLOG SET Accessdt=GETDATE(),AccessNumber=@AccessNumber WHERE

SessionID=@SessionID

      SELECT Progress=0,CoyID=@CoyID

      RETURN

    END



  /* Other Users */

  IF (@Level = "GENERAL")

    BEGIN

      SELECT @AccessNumber = @AccessNumber + 1

      UPDATE USERLOG SET Accessdt=GETDATE(),AccessNumber=@AccessNumber WHERE

SessionID=@SessionID

      SELECT Progress=0,CoyID=@CoyID

      RETURN

    END



  IF (@Level = "REPORT")

    BEGIN

      SELECT @Rights=Rights FROM USERS WHERE CoyID=@CoyID AND UserID=@UserID

      	IF NOT (@Rights & 1 = 1) /* Logical Operation on Bit 0 */

		  BEGIN

			SELECT Progress=2,Errormsg="User Does Not Have REPORT rights."

			RETURN

          END

	   SELECT @AccessNumber = @AccessNumber + 1

	   UPDATE USERLOG SET Accessdt=GETDATE(),AccessNumber=@AccessNumber WHERE

SessionID=@SessionID

       SELECT Progress=0,CoyID=@CoyID

	   RETURN

	END



  IF (@Level = "ADMIN")

    BEGIN

      SELECT @Rights=Rights FROM USERS WHERE CoyID=@CoyID AND UserID=@UserID

      	IF NOT (@Rights & 2 = 2) /* Logical Operation on Bit 1 */

		  BEGIN

			SELECT Progress=2,Errormsg="User Does Not Have ADMIN rights."

			RETURN

          END

	   SELECT @AccessNumber = @AccessNumber + 1

	   UPDATE USERLOG SET Accessdt=GETDATE(),AccessNumber=@AccessNumber WHERE

SessionID=@SessionID

       SELECT Progress=0,CoyID=@CoyID

	   RETURN

	END



  IF (@Level = "SYSADMIN")

    BEGIN

      SELECT @Rights=Rights FROM USERS WHERE CoyID=@CoyID AND UserID=@UserID

      	IF NOT (@Rights & 4 = 4) /* Logical Operation on Bit 2 */

		  BEGIN

			SELECT Progress=2,Errormsg="User Does Not Have SYSADMIN rights."

			RETURN

          END

	   SELECT @AccessNumber = @AccessNumber + 1

	   UPDATE USERLOG SET Accessdt=GETDATE(),AccessNumber=@AccessNumber WHERE

SessionID=@SessionID

       SELECT Progress=0,CoyID=@CoyID

	   RETURN

	END



	SELECT Progress=3,Errormsg="Invalid Operation Requested."

	RETURN



GRANT  EXECUTE  ON sp_checklogin  TO public

GO

anyone any idea why i can not run the script?




  Return to Index