Re: Access 2007, SQL 2000
- From: "Paul Shapiro" <paul@xxxxxxxxxxxxxxxxxxxxxxx>
- Date: Wed, 2 Sep 2009 23:24:05 -0400
Since users are not dbo, and SQL 2000 used the user name as the schema identifier, you have to make sure that every reference to a SQL Server object is fully qualified with the dbo. schema identifer. That would apply to all sql statements in VBA code and Access properties like form and report record sources. It's also good practice to include the schema qualifer in stored procedures, views, check clauses, etc., but I don't think those are essential. Those objects run within the context of the object owner, which should be dbo.
Normally a user should not be able to create any new objects in the db, but if they do, those new objects will be in the userName schema, not the dbo schema, assuming the user is not a db owner. When Access links a table it puts the schema name in parentheses after the object name, since it doesn't support the period within the object name. In your case where the user is a db owner, but not a sysadmin, Access may mistakenly be linking the table with the username qualifier instead of dbo, while the object is correctly created by SQL Server in the dbo schema.
"Watson, Rick" <rawatson@xxxxxxxxxxx> wrote in message news:40E44F0F-C2E0-428E-B500-28FA3803BDA4@xxxxxxxxxxxxxxxx
We have an issue using ADPs from our Access 2007 clients connecting to our SQL 2000 server. This problem was solved in the old days by making people sysadmins, but I am determined to stop that practice.
I have a user who I have made a database owner of one of the databases. He connect to the database fine, and do things in it. If he creates a new view, and runs it, all is fine. However if he then tries to go back into "design view" for that view, he receives the message "You might not have permission to perform this operation, or the object Test_090109 might no longer exist in the database."
In looking at the datase, the owner of this is dbo, as it is the owner of everything else. He can go in and use design view on the other views.
So I had him try it with a table. He can open other tables in design view. But he created a new table and afterward tried to go back into design view. His message is subtly different "table 'Test_table_090209 (hisusername)' no longer exists in the database". So it is seeing his name, but when I look at the table in Management Studio, I see dbo.Test_table_090209. So the ADP is looking for his name there, but it isn't nor do I want it to be.
At least in the view, there isn't a reference to his username, but I'm thinking that is the same problem.
So there is something about the 2000 Schema and the adp that aren't figuring each other out. Does anyone have any ideas as to what? I of course can do all this, but I am in the sysadmin group.
So is there some way of convincing the ADP and SQL to default correctly?
.
- References:
- Access 2007, SQL 2000
- From: Watson, Rick
- Access 2007, SQL 2000
- Prev by Date: Access 2007, SQL 2000
- Next by Date: Re: Access 2007, SQL 2000
- Previous by thread: Access 2007, SQL 2000
- Next by thread: Re: Access 2007, SQL 2000
- Index(es):
Relevant Pages
|