Skip to main content
SUBMITTED

Providing read-only access to TimeXtender classic projects

  • December 4, 2024
  • 3 replies
  • 41 views

With the older 20.10.44.64 desktop version with repo and warehouse databases on Azure SQL Databases. I'd like to provide access to a user to view the TimeXtender projects, but limit them to not be able to edit them. Is there a good way to do that?

Can I just use a read-only credential for the warehouse database and the read-only ODX credentials?

Can I install the TimeXtender application on multiple workstations using the same license key but not enabling the scheduler service and not installing the odx service on the workstations?

3 replies

  • Author
  • Starter
  • December 4, 2024

I attempted to connect to the project with a user that has read access to the repo database, but I get an error containing “The EXECUTE permission was denied on the object 'EnvironmentsList', database ...”. Looks like the user would need at least execute permissions on portions of the repo database.


Christian Hauggaard
Community Manager
Forum|alt.badge.img+5

@bradmorgan this is not currently supported. I have converted this to a product idea


  • Explorer
  • January 28, 2025

@bradmorgan ​@Christian Hauggaard 

I created a user with name [UserReadOnly] with Role [db_datareader] and then added:
 

GRANT EXECUTE ON OBJECT::[dbo].[OpenProject]
TO [UserReadOnly];

GRANT EXECUTE ON OBJECT::[dbo].[GetProjectList]
TO [UserReadOnly];

GRANT EXECUTE ON OBJECT::[dbo].[NavAdaptersSelect]
TO [UserReadOnly];

GRANT EXECUTE ON OBJECT::[dbo].[EnvironmentsList]
TO [UserReadOnly];

 

But finally I received the error:

Error loading project:

Adapter with id:40a7d067-9fe6-48a0-b935-6aa19e56869e and version 677 could not be loaded.
Cannot load Provider source

Details:

Adapter with id:40a7d067-9fe6-48a0-b935-6aa19e56869e and version 677 could not be loaded. ...
Module: timeXtender
System.Exception
at TimeXtender.DataManager.Project.InitProject(Int32 version, DsProject loadDsProject, DataSet adaptersDataSet, ProjectsRow projectRow)
at TimeXtender.DataManager.Project.LoadProject(DsProject _dsProject)
at TimeXtender.DataManager.Project.<>c__DisplayClass136_0.<LoadProject>b__0()
at TimeXtender.DataManager.ConnectingThread.ExecuteConnectingThread(Object dummy)

Adapter with id:40a7d067-9fe6-48a0-b935-6aa19e56869e and version 677 could not be loaded. ...
Module: timeXtender
TimeXtender.DataManager.ExceptionWrapperException
at TimeXtender.DataManager.ConnectingThread.HandleError()
at TimeXtender.DataManager.ConnectingThread.Execute(String title, Int32 progressSteps, List`1 actions)
at TimeXtender.DataManager.Project.LoadProject(Guid _projectId, LockStrategy _lockStrategy, Int32 version, IWin32Window dialog, String projectName, String title)
at TimeXtender.DataManager.DialogProjectLoad.LoadProject(String& resultMessage, ConnectingThread thread, IWin32Window dialog)
at TimeXtender.DataManager.ProjectController.<>c__DisplayClass81_1.<OpenProject>b__1()
at TimeXtender.DataManager.ConnectingThread.ExecuteConnectingThread(Object dummy)

Adapter with id:40a7d067-9fe6-48a0-b935-6aa19e56869e and version 677 could not be loaded. ...
Module: timeXtender
TimeXtender.DataManager.ExceptionWrapperException
at TimeXtender.DataManager.ConnectingThread.HandleError()
at TimeXtender.DataManager.ConnectingThread.Execute(String title, Int32 progressSteps, List`1 actions)
at TimeXtender.DataManager.ProjectController.OpenProject(RecentProject recentProject, Boolean refreshWhenFinished, Boolean showResultMessage, Boolean isImportProject)

Time: 2025-01-28 09:34:49
UTC: 2025-01-28 08:34:49
Title: Jet Data Manager Server 20.10.33.64
Application: 20.10.33.64
Repository: 20.10.33.64 (in Azure)
SQL Server: Microsoft SQL Azure (RTM) - 12.0.2000.8
Oct 2 2024 11:51:41
Copyright (C) 2022 Microsoft Corporation

I changed the user role to [db_denydatawriter] which allows opening of the project, but cannot save the project. I’m not sure if this is 100% fool proof, but seems fine for now.