You do not have permissions to read the ... table

gooms
gooms Member Posts: 4
We recently migrated our database from Native to SQL server 2005. We are using NAV4.0.SP3.
After the migration we started getting error messages like this: You do not have permissions to read the [TableName] table. Contact your system manager if you need to have your permissions changed. (There are several tables which have this problem, table 5717 is one of them for example)

We've tried adding those tables to the security role of the users, but that didn't help at all.

ps: There is a similar thread about this ( viewtopic.php?t=15671 ) but I'm quite new to SQL2005, so I actually don't know how to do: 'You just need to grant select privileges for $ndo$shadow for table/view ...' or if this is a solution to my problem at all.

Thanks in advance.

edit - some more info about our situation:
We have SQL server 2005 + SP1 installed, and we are using the Standard security model.

Answers

  • ara3n
    ara3n Member Posts: 9,258
    did you run synchronize security after changing the roles?

    Also are you on simple or enhanced security model?
    I would use simple security model.
    Ahmed Rashed Amini
    Independent Consultant/Developer


    blog: https://dynamicsuser.net/nav/b/ara3n
  • gooms
    gooms Member Posts: 4
    I actually tried both: enhanced security model & then manually synchronised, and also using standard security model where everything is synchronised automatically.
  • ara3n
    ara3n Member Posts: 9,258
    is you are using regular and add new tables, you need to run synchronize manually still.
    Ahmed Rashed Amini
    Independent Consultant/Developer


    blog: https://dynamicsuser.net/nav/b/ara3n
  • gooms
    gooms Member Posts: 4
    ara3n wrote:
    is you are using regular and add new tables, you need to run synchronize manually still.
    That wasn't the case tho, it were all existing tables.

    Anyway, it seems that there was some residual data in some tables (that probably got in there using our DEV Licence) which weren't in our client's licence. It looks like the native database just ignored existing data in the tables that aren't in the licence and just denies access to those tables, but for the SQL database the tables have to be completely empty also.
    So basically emptying the tables that gave the error solves this.
  • DenSter
    DenSter Member Posts: 8,307
    Do your extended stored procedures have the right permissions set up? The Public role needs to be granted execute rights to both of them.
  • kine
    kine Member Posts: 12,562
    In general: SQL is more strict to permissions. Tables, which are not in license, must be empty. Sometime, you need to add table into role although the table is not in license. It means, if you have this "error", add the table into some role for the user. Sometime it can be problem of incorrectly done customization, working with tables which are not in license...
    Kamil Sacek
    MVP - Dynamics NAV
    My BLOG
    NAVERTICA a.s.