Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

permissions to hit sysobjects

Posted on 2010-09-09
14
Medium Priority
?
643 Views
Last Modified: 2012-05-10
what permissions does a user need to be able to select sysobjects?

thanks
0
Comment
Question by:anushahanna
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 6
  • 4
  • 2
  • +2
14 Comments
 
LVL 11

Accepted Solution

by:
aelliso3 earned 1200 total points
ID: 33639696
the just need SELECT permissions:
 
GRANT SELECT ON sys.sysobjects to anushahanna,
0
 
LVL 6

Author Comment

by:anushahanna
ID: 33639740
he does't hit it, still. can you see why?
create proc test as select 1
create login testlogin with password =  'password1!'
create user testuser FOR LOGIN testlogin
grant select on sysobjects to testuser
execute as user = 'testuser'
select * from sysobjects where type = 'P' and name = 'test'
revert
drop user testuser
drop login testlogin
drop proc test

Open in new window

0
 
LVL 5

Assisted Solution

by:tvPrasad
tvPrasad earned 400 total points
ID: 33639742
account with sysadmin permissions
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
LVL 11

Expert Comment

by:aelliso3
ID: 33639917
It's working great on mine ... Are you using a seperate session to execute the sproc?
create proc test as select 1
create login testlogin with password =  'password1!'
create user testuser FOR LOGIN testlogin
grant select on sysobjects to testuser
execute as user = 'testuser'
select * from sysobjects where type = 'P' and name = 'test'
revert
drop user testuser
drop login testlogin
drop proc test
GO 

EXEC test

Open in new window

0
 
LVL 6

Author Comment

by:anushahanna
ID: 33640028
aelliso3, i still could not make it happen. can you execute it without the 'EXEC test' line- that is not needed for this test, right?

I changed you code with lots of GOs to make it sure that it will err out... can you try this:
----------------------------
create proc test as select 1;
GO
create login testlogin with password =  'password1!';
GO
create user testuser FOR LOGIN testlogin;
GO
grant select on sysobjects to testuser;
GO
execute as user = 'testuser';
GO
select * from sysobjects where type = 'P' and name = 'test';
GO
select system_user;
GO
revert;
GO
select system_user;
GO
drop user testuser;
GO
drop login testlogin;
GO
drop proc test;
0
 
LVL 6

Author Comment

by:anushahanna
ID: 33640057
tvPrasad, other than sysadmin, any other lower level roles?
0
 
LVL 143

Assisted Solution

by:Guy Hengel [angelIII / a3]
Guy Hengel [angelIII / a3] earned 400 total points
ID: 33640226
actually, to READ ( SELECT) sysobject/sys.objects, you need no rights, because public role has read permissions to it implicitly, and any login mapped to the database (aka user) has public role implicitly.this is anyhow required, otherwise the user would not be able to "see" which objects he has actually permissions to and which not ...
0
 
LVL 5

Expert Comment

by:tvPrasad
ID: 33640243
you can try

GRANT SELECT, EXECUTE ON sys.sysobjects TO anushahanna
0
 
LVL 6

Author Comment

by:anushahanna
ID: 33640444
angelIII, tvPrasad - that does not seem to be sufficient..

please run the code in # 33640028 above.
0
 
LVL 11

Assisted Solution

by:aelliso3
aelliso3 earned 1200 total points
ID: 33641290
Try this ...

CREATE LOGIN testlogin WITH PASSWORD='password1!'
ALTER LOGIN testlogin ENABLE
GO

create user testuser FOR LOGIN testlogin;
GO

CREATE PROC test AS SELECT 1
GO
GRANT EXECUTE ON master.dbo.test TO testuser
GRANT VIEW DEFINITION ON master.dbo.test TO testuser

GO

--GRANT select on sysobjects to testuser;
GO
EXECUTE AS user = 'testuser';
SELECT * FROM sysobjects WHERE TYPE = 'P' AND NAME = 'test';
SELECT system_user;
GO 
REVERT
GO
drop user testuser;
GO
drop login testlogin;
GO
drop proc test;
GO

Open in new window

0
 
LVL 11

Assisted Solution

by:aelliso3
aelliso3 earned 1200 total points
ID: 33641349
I wanted to take a second and go through and eliminate what was not needed in the script above. Below is a little cleaner version ...
CREATE LOGIN testlogin WITH PASSWORD='password1!'
CREATE USER testuser FOR LOGIN testlogin
GO

CREATE PROC test AS SELECT 1
GO

GRANT EXECUTE ON master.dbo.test TO testuser

EXECUTE AS user = 'testuser'
SELECT * FROM sysobjects WHERE TYPE = 'P' AND NAME = 'test'
SELECT system_user
GO 

REVERT
DROP USER testuser
DROP LOGIN testlogin
DROP PROC test
GO

Open in new window

0
 
LVL 75

Expert Comment

by:Anthony Perkins
ID: 33642807
Just for the record, are you still using SQL Server 2000, because all the solutions so far seem to assume you are using SQL Server 2005.
0
 
LVL 6

Author Comment

by:anushahanna
ID: 33646980
aelliso3, i see your point. thanks.
0
 
LVL 6

Author Comment

by:anushahanna
ID: 33646982
acperkins, this pertained to SQL 2005, and helped. thank you.
0

Featured Post

[Webinar] Lessons on Recovering from Petya

Skyport is working hard to help customers recover from recent attacks, like the Petya worm. This work has brought to light some important lessons. New malware attacks like this can take down your entire environment. Learn from others mistakes on how to prevent Petya like worms.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

For both online and offline retail, the cross-channel business is the most recent pattern in the B2C trade space.
What if you have to shut down the entire Citrix infrastructure for hardware maintenance, software upgrades or "the unknown"? I developed this plan for "the unknown" and hope that it helps you as well. This article explains how to properly shut down …
Via a live example, show how to extract information from SQL Server on Database, Connection and Server properties
Using examples as well as descriptions, and references to Books Online, show the different Recovery Models available in SQL Server and explain, as well as show how full, differential and transaction log backups are performed

618 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question