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?